2014-05-13 35 views
0

我的html代码在这里。 鼠标事件函数写这样如何更改onmouseover属性编程?

<li class="gnb1" onmouseover="fn1('param_01');" onmouseout="fn2('param_02','param_01');" > ... 

我想改变功能和参数的程序化在jQuery或JavaScript。

$("li.gnb1").attr("onmouseover", "new_function_name()"); 

此代码无法正常工作。帮我。展示你的举动!

+1

你不应该使用事件处理程序的HTML属性,如果你能避免它 – Markasoftware

+1

你做了什么调试问题?是'new_function_name'全局吗?它适用于我在这里:http://jsfiddle.net/R27tq/。 –

+0

@Markasoftware抱歉,我应该使用这个html属性。 – Kernelzero

回答

0

您可以解除绑定旧处理程序并添加一个新处理程序。

// To remove 
$("#foo").unbind("click"); 

// Then add new binding 
$("#foo").click(function() { }); 

的文档解绑定是在这里:http://api.jquery.com/unbind/

[编辑按评论]

如果您需要更改HTML的能力,你可以使用jQuery来执行你的绑定,以及你的unbindings。

[进一步编辑]

但是,您可以删除内嵌事件处理程序removeAttr

$('#foo').removeAttr('onclick'); 
+2

我不认为'unbind'可以让你删除内联事件处理程序。 –

+0

您可以简单地使用jQuery绑定事件处理函数:) –

+1

您应该在您的答案中提到这一点。另外,OP可能无法修改HTML。 –