将事件添加到Datepicker next和prev按钮

时间:2012-05-10 16:40:20

标签: jquery-ui-datepicker jquery

我写了这个简单的代码来将事件附加到我的一个div上。但事件似乎永远不会被解雇。这是我的代码:

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

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

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

P.S。我想将事件添加到jQuery DatePicker的next和prev按钮

2 个答案:

答案 0 :(得分: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');
});

请注意,委派悬停和鼠标悬停事件非常昂贵,因此您可能需要重新考虑这一点。另一种方法是直接绑定到元素(就像你在你的例子中尝试的那样),但是等到你确定元素存在之后才等到你。

答案 1 :(得分:0)

如果要创建新元素,请尝试使用live()

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

还将您的代码包装在DOM ready

$(document).ready(function() {
  // Your code
});