35

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

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

id = "stop"の要素があり、ユーザーがそれをクリックしたときに、id="next"の要素のonclick属性を変更したいと思います。

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

4

4 に答える 4

56

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

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

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

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

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

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

于 2011-04-25T18:24:09.417 に答える
16

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

$('#stop').click(function() {
     $('next').attr('onClick','stopMoving()');
}
于 2015-10-20T17:02:08.780 に答える
7

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

$('#stop').click(function() {
    $('next')[0].setAttribute('onclick','stopMoving()');
}
于 2011-09-21T14:36:43.747 に答える
0

フェリックス・クリングのやり方はうまくいくでしょう(実際には私をパンチに打ち負かします)が、私はまた使用することを提案するつもりでした

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

これは、要素が複数回クリックされたときに問題や奇妙な動作が発生した場合に、より良い方法である可能性があります。

于 2011-04-25T18:27:59.247 に答える