Jquery - 我们可以通过.attr更改选择标记中的onchange事件吗?

时间:2013-11-28 10:17:25

标签: javascript jquery

HTML

<select id=test onchange="foo(1)"> <option value=1>test 1</option> <option value=2>test 2</option> </select>

我正在尝试使用以下内容更改onchange函数:

$('#test').attr('onchange','foo(2)'); //this is not working

4 个答案:

答案 0 :(得分:1)

您应该尝试更改侦听器本身,而不是尝试更改属性:

$('#test').change(function() {
  alert( "Change Event triggered" );
});

如果你想确保在保持之前清理你所附的听众是从使用那一刻起附加的唯一一个

$("#test").unbind();

在设置新侦听器之前。

编辑: 如评论中所述,如果要使用jQuery unbind函数,则不应使用内联javascript。

答案 1 :(得分:1)

也许你可以尝试只使用jQuery?

$("#test").unbind("change");
$("#test").change(function(){
    foo(2);
});

答案 2 :(得分:1)

$('#test').change(function() {
    foo(($this).val());
});

从select标签中删除onchange

答案 3 :(得分:0)

我遇到了同样的问题,您可以尝试

$('#test').attr('onChange','foo(2)');

使用“ onChange”而不是“ onchange”;