我正在使用jquery
var message='';
message='<p>Are you sure want to delete ?</p>';
message +='<p style=\'text-align:right;margin: 5px;\'>';
message +='<span><input type=\'button\' value=\'Yes\' class=\'button\'';
message +='onclick="yesOption(\''+this+'\',\''+requestData+'\',\''+gridObject+'\')" /></span>';
message +='<span><input type=\'button\' value=\'No\' id=\'btnNo\' class=\'button\'';
message +=' onclick="return noOption(\''+errMsgDiv+'\')" /></span>';
message +='</p>';
这里我想生成运行时确认对话框,因为我需要在this
函数中传递yesOption
对象。
但是当我运行此代码时,在该按钮中,代码生成为Object
字符串,而不是this
作为当前对象。
所以任何正文请解释如何在运行时维护Object(this Object)
的状态。
答案 0 :(得分:0)
试试这个:
message='<p>Are you sure want to delete ?</p>';
message +='<p style=\'text-align:right;margin: 5px;\'>';
message +='<span><input type=\'button\' value=\'Yes\' class=\'button\' /></span>';
message +='<span><input type=\'button\' value=\'No\' id=\'btnNo\' class=\'button\' /></span>';
message +='</p>';
var msgDOM = $(message);
var $this = this;
msgDom.find('button[value=Yes]').click(function() {
yesOption($this, requestData, gridObject);
});
msgDom.find('button[value=No]').click(function() {
noOption($this, requestData, gridObject);
});
您不能将DOM元素放在字符串中,因此您无法像这样在内联Javascript中引用它们。并且您需要将局部变量绑定到处理程序函数之外的this
,因为this
由jQuery设置为单击的元素。