我有一个按钮:
<input onclick="if (!PreSaveItem()) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$m$g_1b663413_07f2_4335_90bd_e843be587b73$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true))" type="button" target="_self" jQuery1110039212041699899153="167" value="Save"/>
当我在表单上有错误时,我删除attr onclick ....所以它不会保存页面... 当我没有错误时,我将attr onclick替换为默认值... 但是,当我这样做时,onclick功能不会执行.... 我可以在变量中使用我的代码声明一个函数吗? 像这样:
var onClickBtn = $( 'input' ).attr( 'onclick' );
function myFunc = onClickBtn;
myFunc();
答案 0 :(得分:2)
根本不使用onclick
属性。更好的是在代码中定义函数,然后使用jQuery附加事件处理程序:
function onClickBtn () {
// ...
}
$('input').on('click', onClickBtn);
onClickBtn();
答案 1 :(得分:1)
你几乎可以做到这一点:
var onClickBtn = $( 'input' ).attr( 'onclick' );
var myFunc = new Function(onClickBtn);
myFunc();
但这里做起来更简单
var myFunc = $( 'input' )[0].onclick;
myFunc();
不同之处在于,在第二种情况下,您获得onclick
(这是一个函数)的值,而不是获取attr
返回的字符串。
但
这回答了被问到的问题。但是从元素中获取事件处理程序来执行它是一种不好的做法,这很尴尬。你真的应该改变你对问题的处理方法(目前还不清楚)。