这是一个代码样本。
$(".remove.group").live("click", function (ev) {
var button = $(ev.currentTarget);
var action = button.get(0).dataset["action"];
var method = button.get(0).dataset["method"];
var modal = $("#remove");
modal.find(".primaryaction").bind("click", function (e) {
$.ajax({
url: action,
type: method,
dataType: "xml",
success: function (rawResponse, status, xhr) {
//some business logic
$.nmTop().close();
},
error: function (xhr) {
console.log(arguments);
var message = "Could not remove group";
alert(message);
$.nmTop().close();
}
});
});
modal.find(".cancelButton").bind("click", function (e) {
$.nmTop().close();
});
$.nmManual("#remove");
return false;
});我在这里使用nyroModal和jQuery。
所有点击事件第一次正常工作。但是,如果我再次重新打开该模式并单击任意一个按钮,nyroModal将导致抛出错误:
this.elts.cont未定义
发布于 2012-02-24 17:27:59
如果您查看调试版本,我通过添加一个elts存在测试来解决这个问题。
_unreposition: function() {
if (this.elts.length) {
this.elts.cont.css('overflow', '');
var elts = this.elts.all.find('.nmReposition');
if (elts.length)
this.elts.cont.append(elts.removeAttr('style'));
}
this._callFilters('afterUnreposition');
}发布于 2012-11-07 11:29:35
为了完整起见,请执行@Sparkx所做的操作,但随后我又犯了一个错误,即"TypeError: nm.elts.cont是未定义的“。要修复此更改,请执行以下操作:
hideCont: function(nm, clb) {
nm.elts.cont.css('overflow', 'hidden').fadeOut(clb);至:
hideCont: function(nm, clb) {
if(nm.elts.cont) nm.elts.cont.css('overflow', 'hidden').fadeOut(clb);https://stackoverflow.com/questions/9028207
复制相似问题