0

我编写了这个简单的代码来将事件附加到我的一个 div 中。但这些事件似乎从未被解雇。这是我的代码:

$(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 回答