divの「クリック」メソッドを設定しようとするとjQueryで予期しない結果が発生します。 this jsfiddleをご覧ください。コンソールウィンドウを開いてください。単語を数回クリックし、コンソールの出力を見てください。 click関数は一度だけ呼び出されるべきであるときに複数回呼び出されます。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の「クリック」機能が別のハンドラをADDSとして認識していないことです。私はそれが現在のハンドラを置き換えたと思った。
ありがとうございます。私は "データステータス"属性に慣れていませんが、私のニーズに合っています。ただし、コードをトグルとして機能させるには、 "$(this).data( 'status'、true);を追加する必要があります。 〜にelse文。 –
そのテキストだけを変更したい場合は、私の答えを見てください。あなたは.data()を全く使う必要はありません – kannix
なぜ$( "#test")と$(this)を混ぜるのですか? – kannix