用jQuery获取“onclick”的值?
是否可以通过jQuery获取A标记的onClick属性的当前值?
例如,我有:
Click
我想获得onclick代码,以便我可以存储它供以后使用(因为我将稍微更改onclick事件)。
是否可以做以下事情:
var link_click = $("#google").onclick;
要么:
var link_click = $("#google").click;
所以,稍后在我的代码中,我可以重新应用该代码,或者必要时使用eval()它?
我从来没有这样做过,但它会这样做:
var script = $('#google').attr("onclick")
mkoryak
是对的。
但是,如果使用更现代的方法(不使用onclick
)将事件绑定到该DOM节点,则此方法将失败。
如果这是您真正想要的,请查看此问题及其接受的答案。
干杯!
我又读了你的问题。
我想告诉你:不要使用onclick
, onkeypress
和喜欢绑定事件。
使用更好的方法(如addEventListener()
将使您能够:
- 向特定事件添加多个事件处理程序
- 有选择地删除一些听众
您可以使用jQuery
包装器(如$('selector').click()
而不是实际使用addEventListener()
$('selector').click()
。
再次干杯!
这对我有用
var link_click = $('#google').get(0).attributes.onclick.nodeValue; console.log(link_click);
$('#google').attr('onclick') + ""
但是,Firebug显示这会返回一个函数’onclick’。 您可以稍后使用以下方法调用该函数:
(new Function ($('#google').attr('onclick') + ';onclick();'))()
…或使用RegEx去除function
并仅获取其中的语句。
我不太确定如何在jQuery中执行此操作…但这有效:
var x = document.getElementById('google').attributes; for (var i in x) { if (x[i].name == "onclick") alert(x[i].firstChild.data); }
但是像Harshath说的那样,如果你使用事件监听器会更好,因为删除这个函数并将其添加回onclick事件可能会很麻烦。
你能解释一下你到底想要完成什么吗? 通常,您不必从HTML元素中获取onclick属性。 此外,您不应该在元素本身上指定onclick。 而是使用JQuery动态设置onclick。
但据我了解,您尝试在两个不同的onclickfunction之间切换。 更好的方法是以一种可以处理这两种情况的方式实现你的onclickfunction。
$("#google").click(function() { if (situation) { // ... } else { // ... } });