我想重命名按钮的onclick方法。首先我的Button有以下代码:
<input id="my_button" class="update field-button" type="button" onclick="add( this )" value="ADD Something" title="ADD Item" name="my_button"></input>
然后我想要这样的事情:
<input id="my_button" class="update field-button" type="button" onclick="remove( this )" value="ADD Something" title="ADD Item" name="my_button"></input>
我使用以下声明重命名:
parentNode.innerHTML = parentNode.innerHTML.replace( /(onclick="?)[A-Za-z0-9\-]+(\([^)]*\)"?)/, "$1remove$2" );
parentNode
是一个var:
var parentNode = removeButton.parentNode;
在Internet Explorer中,它可以正常工作,但不适用于firefox
答案 0 :(得分:2)
这不是实现所需功能的方法,点击处理程序可以完全用javascript绑定。
尝试以下方法:
document.getElementById('my_button').onclick = function() {
var toggle = false;
return function (e) {
toggle = !toggle;
toggle ? add(this) : remove(this);
};
}();
答案 1 :(得分:0)
虽然我会推荐丰富的答案,并将这些逻辑放入点击处理程序中,但问题可能会很有趣。
Firefox正确地替换了你的替换并调用按钮native remove-method,因为click处理程序有按钮的范围。所以
onclick="remove( this )"
与
相同onclick="document.getElementById('my_button').remove();"
然后按钮从dom中删除。