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

Felix Kling 的方法会奏效,(实际上打败了我),但我也建议使用

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

如果在多次单击元素时遇到问题和奇怪的行为,这可能是一种更好的方法。

于 2011-04-25T18:27:59.247 回答