属性をリッスンしcontenteditable
、変更されたハンドラーをシミュレートするスクリプトに取り組んでいます。そして、コードは複数回実行されます。なぜそうなるのかはわかりません。Edit2: 問題を修正したコードを更新しました。コードは次のようになります。
Event.observe(window, 'load', init, false);
function init() {
makeEditable('myeditablediv');
}
function makeEditable(id) {
Event.observe(id, 'click', function(){test($p(id))}, false);
}
function test(obj) {
var pre = obj.innerHTML;
$(obj).one("focusout", function(){
newcontent = obj.innerHTML
alert(pre + ' ' + newcontent);
if (newcontent !== pre) {alert('content is not the same')};
});
}
これはもともとプロトタイプ スクリプトです$p
。jQuery も使用しているため、セレクターを変更する必要があったためです。
以前test()
の値を出力してから、新しい値を出力します。次に、この 2 つを比較してみます。次に要素をクリックするmyeditablediv
と、以前の変数が表示され、次に新しい変数が表示されます。3 回目は最初の 2 つをクリックし、次に新しい 3 つ目をクリックします。などなど。フェイスパームの準備ができている人もいるに違いありませんが、私はこれを見つけるのに十分ではありません. のせいですEvent.observe
か?編集:ifステートメントを編集しました。