我在某些链接上设置了一个JavaScript弹出窗口"确认对话",当单击链接时,它说"你确定吗?"并让你确认或取消,但是无论您选择什么,ajax调用都将起作用。
<a onclick="return confirm('Are you sure?')" class="sendEmailLink" href="/" id="someID">Send</a>
调用的函数按如下方式启动:
$$('.sendEmailLink').addEvent('click', function(e)
{
e.stop();
(I assume something should go here)
var myRequest = new Request.JSON({
etc...
确认对话框不会停止上述代码是有道理的,但我无法弄清楚如何在 mootools 中完成此操作。帮助?
我需要一个对话框,提供是或否的选择,如果是,则继续ajax请求,如果不是,则不要继续请求。
谢谢。
就像@Marcin提到的,您将两个单击事件绑定到一个元素,因此无论确认对话框的结果如何,您的 ajax 调用都会照常进行也就不足为奇了。
通过不通过 onclick
属性将事件绑定到元素来消除一个。(切勿使用onclick
!
element.addEvent('click', function() {
if (confirm('Are you sure?')) {
new Request.JSON({
// ...
}).send();
} else {
// Do nothing
}
});
这里有一个相关的jsFiddle供您使用。
这是解决方案: http://jsfiddle.net/kVjAB/
一些评论:
-
不要再在 Mootools 中使用 $$ 或 $。它们已弃用。
-
在代码中,您将
click event
绑定到链接。此外,您还添加了属性onClick
它将首先运行自身代码,然后运行绑定的代码。这就像您添加两个单独的事件来链接一样。