jQuery attr('onclick')

Sha*_*ark 30 javascript jquery onclick attr

我试图改变jQuery中的"onclick"属性,但它没有改变,这是我的代码:

$('#stop').click(function() {
     $('next').attr('onclick','stopMoving()');
}
Run Code Online (Sandbox Code Playgroud)

我有一个id ="stop"的元素,当用户点击它时,我想更改一个id ="next"的元素的onclick属性.

如果有人知道解决方案在哪里请帮忙!

Fel*_*ing 48

以jQuery的方式(并修复错误):

$('#stop').click(function() {
     $('#next').click(stopMoving);
     // ^-- missing #
});  // <-- missing );
Run Code Online (Sandbox Code Playgroud)

如果元素已经click通过onclick属性附加了处理程序,则必须将其删除:

$('#next').attr('onclick', '');
Run Code Online (Sandbox Code Playgroud)

更新:正如@Drackir指出的那样,您可能还需要调用$('#next').unbind('click');才能删除通过jQuery附加的其他点击处理程序.

但这是在猜测.一如既往:更多信息=>更好的答案.

  • 这些答案的问题是他们没有回答这个问题.这些人没有意识到有时你正在处理其他人的代码.当然,通常你会在jQuery中使用click函数.当然.但是,我有一种情况,我需要向pre-exisitng的onClick事件添加一些内容.有些变量硬编码到HTML中.我无法更改HTML. (2认同)

Tim*_*Tim 14

正如@Richard上面指出的那样,onClick需要有一个大写'C'.

$('#stop').click(function() {
     $('next').attr('onClick','stopMoving()');
}
Run Code Online (Sandbox Code Playgroud)


小智 7

最简单的方法是将.attr()函数更改为javascript函数.setAttribute()

$('#stop').click(function() {
    $('next')[0].setAttribute('onclick','stopMoving()');
}
Run Code Online (Sandbox Code Playgroud)