0

属性 id="x" を持つ div があり、jQuery に次のコードがあります。

$(document).ready(function()
{
    $('#x').click(function(){
        $(this).removeAttr('id');
         alert('something')
    });
});

これで、div をクリックするたびに、id 属性が削除され、メッセージがポップアップ表示されます。しかし、要素をもう一度クリックすると、メッセージがまだポップアップします。属性が最初にクリックされたときに属性が削除されたときに、なぜこのようなことが起こるのでしょうか?

4

3 に答える 3

3

要素は、その ID を使用して jquery でインスタンス化されたままになります。
これを試してみてください:

$(document).on('click','#x',function(){
        $(this).removeAttr('id');
         alert('somethin');
    });

デモ

于 2013-07-27T14:15:14.357 に答える
2

イベントはドキュメントの準備ができたときに要素にバインドされるためです。属性を削除しても、既にバインドされているイベントの発生は停止しません。それがあなたが望んでいたことなら、あなたはする必要があるでしょ$(this).off('click')う。

于 2013-07-27T14:14:26.930 に答える