2016-10-28 80 views
1

我有一些内联onclick事件的代码,并且该代码无法更改。将内联onclick事件与jquery onclick事件相结合

代码没有

onclick="javascript:document.myform.hiddenfield.value='1234'; 
document.myform.submit(); return false;" 

现在,我想拦截和与外部的jQuery文件进行修改。

但是,我发现内联onclick将通过jQuery在任何附加事件之前运行。

所以我的想法是做一些事情的onload,像取内嵌的onclick文字,把它写为链接一个新的属性,比如说oldonclick,然后设置的onclick通过$ .prop()为null

然后我事件处理程序可以做到这一点,如果满足要求,实际上可以读取并执行旧值。

但是,在第一个障碍中,我有点卡住了,$ .prop(“onclick”)返回一个函数,而不是onclick中的字符串。因此我无法将其分配给某个虚拟值并转到下一步。

如何将onclick作为文本读取,以及如何通过其他方式实现此jQuery拦截?

+0

怎么样'VAR FUNC =的document.getElementById( “someobjectID”)onclick'或'$( “#someobjectID”)获得。 (0).onclick' – mplungjan

回答

1

试试这个:

var onclick = $("a").attr("onclick"); //This is a string 

检查小提琴:https://jsfiddle.net/p50keLy6/

+0

我认为prop的使用现在比attr更受青睐,因为在将来的版本中它不会被支持太多。 – wcndave

+0

我没有在jQuery文档中找到这样的信息。要详细了解'attr()'和'prop()'之间的区别,请访问以下链接:http://api.jquery.com/attr/ –