0

イベントを div の 1 つにアタッチするために、この単純なコードを作成しました。しかし、イベントは決して発生しないようです。これが私のコードです:

$(function() {
    $(".ui-datepicker-prev").hover(function () {
      alert('H');
    });

    $(".ui-datepicker-prev").click(function () {
      alert('C');
    });

    $(".ui-datepicker-prev").mouseover(function () {
      alert('MO');
    });
});

PS jQuery DatePickerの次と前のボタンにイベントを追加したい

4

2 に答える 2

7

更新された質問に基づいて、選択している要素はDOMの準備ができた後に作成されると想定しています。その場合、イベント委任を使用する可能性が最も高くなります。例えば、

$(document).delegate('.ui-datepicker-prev', 'hover', function() {
    alert('H');
});

$(document).delegate('.ui-datepicker-prev', 'click', function() {
    alert('C');
});

$(document).delegate('.ui-datepicker-prev', 'mouseover', function() {
    alert('MO');
});

ホバー イベントとマウスオーバー イベントの委任はかなりコストがかかることに注意してください。別のアプローチは、要素に直接バインドすることです (あなたの例で試みていたように) が、要素が存在することが確実になるまで待ってください。

于 2012-05-10T16:41:14.750 に答える
0

新しい要素を作成している場合は、 live() を使用してみてください

$("#todayBtn").live("hover", function(){
  alert('H');
});

また、コードをDOM対応でラップします

$(document).ready(function() {
  // Your code
});
于 2012-05-10T16:50:34.740 に答える