我得到意想不到的结果,jQuery试图设置div的“单击”方法。请参阅this jsfiddle。一定要打开控制台窗口。几次单击该单词并观看控制台输出。点击函数被调用多次时,它应该只被调用一次。jquery .click被多次调用
最后注释掉的代码工作得很好。难道我做错了什么?我是jQuery的新手。
下面的代码:
function toggleDiv(status)
{
console.log("toggleDiv(" + status + ")");
if (status) {
$("#test").html("Goodbye");
}
else {
$("#test").html("Hello");
}
$("#test").click(function() {
toggleDiv(!status);
});
// Non-jquery method works fine....
//document.getElementById("test").onclick = function() {
// toggleDiv(!status);
//}
}
更新:看起来像有很多方法对皮肤这只猫。这里真正的问题是我不了解jQuery“click”函数ADDS另一个处理程序。我认为它取代了当前的处理程序。
谢谢。我不熟悉“数据状态”属性,但它符合我的需求。但是,请注意,要使您的代码以切换方式工作,需要添加“$(this).data('status',true);”去别的声明。 –
如果你只是想改变那个文本,你应该看看我的答案,你根本不需要使用.data() – kannix
为什么混合$(“#test”)和$(this)? – kannix