我正在使用以下代码在继续之前显示dnnConfirm
确认弹出窗口。问题是需要两次点击才能显示。当我关闭它并再次单击该按钮时,它需要3次点击,依此类推。
我是DNN的新手,知道这里一定有什么问题。请指导
这是我的超链接按钮:
<a id="link-btn" class="dnnSecondaryAction" onclick="setInfo();"/>Save Info</a>
这是我的确认码:
$("#link-btn").dnnConfirm({
text: "<div class='MS'>Save info?</div>",
title: "Confirm Save",
yesText: 'Yes',
noText: 'No',
isButton: true
});
//handle user decision
$("#link-btn").click(function (e, isYES) {
if (isYES) {
saveUserInfo(userID);
}
return false;
});
答案 0 :(得分:1)
这里有一些问题可能会给你带来麻烦。
不幸的是,你没有包含setInfo()方法的代码,但我先看一下。例如。这个方法返回false吗?
另一个问题可能是从
返回false$("#link-btn").click(function (e, isYES) {
可能会使某些其他所需行为短路。一般情况下,您最好使用:
e.preventDefault();
代替。
我还要注意$(&#34;#link-btn&#34;)。click()可能不会做你认为它做的事情。而不是处理确认对话框的结果,在启动确认对话框时会触发此操作。 (例如#link-btn 点击)
要解决双击显示问题的潜在原因(并且还能够处理确认对话框的结果),我建议重写如下:
<强>超链接强>
<a id="link-btn" class="dnnSecondaryAction"/>Save Info</a>
<强>的Javascript 强>
$("#link-btn").dnnConfirm({
text: "<div class='MS'>Save info?</div>",
title: "Confirm Save",
yesText: 'Yes',
noText: 'No',
isButton: true,
callbackTrue: function() {
saveUserInfo(userID); // assuming userID is a global
}
});
$("#link-btn").click(function (e) {
setInfo();
// in this case, you don't need to call e.preventDefault()
// as dnnConfirm will handle that for you
});