web-dev-qa-db-ja.com

jQuery attr( 'onclick')

私はjQueryの「onclick」属性を変更しようとしていますが、変更されません。私のコードは次のとおりです。

$('#stop').click(function() {
     $('next').attr('onclick','stopMoving()');
}

Id = "stop"の要素があり、ユーザーがクリックすると、id = "next"を持つ要素のonclick属性を変更したい。

誰かが解決策がどこにあるかを知っているなら、助けてください!

30
Shark

JQueryの方法で実行します(そしてエラーを修正します):

_$('#stop').click(function() {
     $('#next').click(stopMoving);
     // ^-- missing #
});  // <-- missing );
_

要素に既にclick属性を介してonclickハンドラーがアタッチされている場合、それを削除する必要があります。

_$('#next').attr('onclick', '');
_

更新: @Drackirが指摘したように、jQuery経由でアタッチされた他のクリックハンドラーを削除するために、$('#next').unbind('click');を呼び出す必要があるかもしれません。

しかし、これはここで推測しています。いつものように:より多くの情報=>より良い答え。

47
Felix Kling

@Richardが上で指摘したように、onClickには大文字の「C」が必要です。

$('#stop').click(function() {
     $('next').attr('onClick','stopMoving()');
}
13
Tim

最も簡単な方法は、.attr()関数をjavascript関数.setAttribute()に変更することです

$('#stop').click(function() {
    $('next')[0].setAttribute('onclick','stopMoving()');
}
7
Artnik

このバージョンjquery-1.10.2で試してください!

0
fgallego

Felix Klingの方法は機能しますが(実際に私を打ち負かしました)、使用することも提案しました

$('#next').die().live('click', stopMoving);

要素が複数回クリックされたときに問題や奇妙な動作に遭遇した場合、これはそれを行うためのより良い方法かもしれません。

0
Ryan Sullivan