我给出了一个模型以供确认:
<div class="modal" tabindex="-1" role="dialog" id="modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
... Body ...
<div class="modal-footer">
<button type="button" id="btnCancel" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" id="btnOk" class="btn btn-primary" data-dismiss="modal">Ok</button>
</div>
</div>
</div>
</div>
下面是显示上述模式的代码。
var M = {
confirm: function(body, yes, no) {
$('#btnCancel').on('click', function() {
$('#btnCancel').off();
$('#confirm-modal').modal('hide');
if (no) {
return no();
}
});
$('#btnOk').on('click', function() {
$('#btnOk').off();
$('#modal').modal('hide');
if (yes) {
return yes();
}
});
}
}
下面是我如何使用它...(例如在任何视图中)
M.confirm("Body", function(){
// Function Body
})
现在,问题是:如果我调用confirm,它显示模态。但是如果我单击Cancel,然后再次调用confirm(确认),这一次,我点击OK:函数(上面代码段中的第二个参数)被调用两次。如果我点击取消10次,上面的函数调用10次。
知道为什么会这样吗?
谢谢.
每次调用confirm
时,都将一个事件处理程序添加到btncancel
和btnok
中。
但是,您只在单击其中一个按钮时删除该按钮上的效果处理程序。
因此,如果调用confirm
,然后单击btncancel
,然后调用confirm
您将在btnok
上有两个事件处理程序:一个来自对confirm
的第一次调用,一个来自第二次调用。
单击任何一个按钮时,都需要删除这两个事件处理程序。
…或者只在加载文档时添加事件处理程序,之后不要再碰它们。
我试图理解一个API参考描述,但我很难理解它的含义: http://mongodb.github.io/node-mongodb-native/2.2/api/Cursor.html#toArray 上面写着 'toArray(回调)- 我知道回调相当于一个“块”,但有一个指向“promise”的箭头符号意味着什么?
我在玩弄promise和回调,想知道如果没有回调被传递,写一个返回promise的函数的正确方法是什么。 我的结果看起来是这样的,但我不确定这是否正确(反模式的意思) 它很简单:创建一个函数,并将“工作”代码包装在一个promise中。如果没有回调传递给我的函数,我返回包装的promise。如果一个回调被传递,我从和 这样可以吗,还是我错过了一些不起作用的特殊情况?
问题内容: 我在使用普通旧JavaScript(无框架)在回调函数中引用我的对象时遇到了一些麻烦。 现在,当我创建一个新对象时(在DOM加载后,使用span#test) onclick函数中的“ this”指向span#test而不是foo对象。 如何在onclick函数中获取对foo对象的引用? 问题答案: (提取了一些其他答案的注释中隐藏的解释) 问题在于以下几行: 在这里,您传递了一个函数对
问题内容: 我已经看到很多类似问题的问题和解决方案,但对我来说没有任何效果。我有这个: 但这不起作用。为了澄清,我想将内容加载到中,然后返回的内容。但是,即使我已将其放入回调函数中,也似乎在加载内容之前返回了该内容。 问题答案:
问题内容: 我在这里需要一些建议或一些解释。我有一个jquery ajax调用, 一切正常。我的回调响应正确触发。但是,我注意到的是,即使我的呼叫返回成功状态200,每次也会触发我的回调。在上面的回调中,我看到该对象是200。 谁能解释什么地方出了问题或这里发生了什么?回调应该仅在我有404或非200响应时触发。我的假设正确吗? 谢谢。 问题答案: 错误回调将在http错误时调用,但 如果响应上的
问题内容: 我有这个ajax请求,可从服务器获取数据,并且默认情况下始终是。但是有时它会从服务器返回json,所以我想检查返回的数据是否为html,然后执行A,否则执行B。可能吗? 我的jQuery 当返回的数据为时,出现此错误, 语法错误:JSON.parse:意外字符 那么如何使此代码 通用 ? 问题答案: 我不确定是否有更好的方法,但是您可以尝试…