jquery运行时对象状态维护

时间:2014-05-07 17:13:11

标签: javascript jquery

我正在使用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)的状态。

1 个答案:

答案 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设置为单击的元素。