我写了这个简单的代码来将事件附加到我的一个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按钮
答案 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
});