我必须遗漏一些基本的东西,但是因为我的生活无法解决问题。
这个想法是当你点击那个点击事件然后解除绑定。另请注意警报('test')未触发。
$(document).ready(function() {
$('#menu .cat-item a').each( function() {
$(this).bind('click',hide).unbind('click',hide);
});
});
function hide(){
alert('test')
$("#home-content").fadeIn();
$("#home-page").fadeOut();
}
使用jquery 1.4
非常感谢
丹
答案 0 :(得分:0)
绑定后你立即解绑!你需要在处理程序(hide
)内取消绑定以确保它已被执行,否则你可能会考虑这一点:
$(document).ready(function() {
$('#menu .cat-item a').one("click", hide);
});
one
将确保每个元素只执行一次处理程序。
答案 1 :(得分:0)
由于jQuery支持流畅的编程风格bind
实际上返回this
对象。
因此,在这种情况下,您首先添加处理程序,然后立即删除它。
正确的版本是
$(document).ready(function() {
$('#menu .cat-item a').each( function() {
$(this).bind('click',hide);
});
});
function hide(){
$(this).unbind('click',hide);
$("#home-content").fadeIn();
$("#home-page").fadeOut();
}