jQuery で div の「クリック」メソッドを設定しようとすると、予期しない結果が得られます。この jsfiddleを参照してください。必ずコンソール ウィンドウを開いてください。単語を数回クリックして、コンソール出力を確認します。クリック関数は、1 回だけ呼び出す必要があるときに複数回呼び出されます。
最後にコメントアウトされたコードは問題なく動作します。私は何か間違ったことをしていますか?私は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 の「クリック」関数が別のハンドラーを追加することを理解していなかったことです。現在のハンドラーを置き換えたと思いました。