目标:我希望能够将给定元素的确认行为与它可能绑定的其他事件处理程序分离。所以给出以下简单的例子
var someApp = {
"init": function(){
$("a").click(someApp.doAnchorStuff);
$("button").click(someApp.doButtonStuff);
$("#submitButton").click(someApp.doSubmitStuff);
$("a, button, #submitButton").click(someApp.confirmAction);
},
"doAnchorStuff": function(){//stuff},
"doButtonStuff": function(){//stuff},
"doSubmitStuff": function(){//stuff},
"confirmAction" : function(){
//intercept the flow of control and freeze everything, no other
//handlers on the elements this is being triggered on get called
//display confirm dialog.
//IF user confirms, unfreeze, let the other handlers get triggered.
//If Not, do not let other event handlers get triggered
}
}
$(function(){
someApp.init();
});
如果这没有意义,我很乐意澄清。
一个非工作小提琴示例:) http://jsfiddle.net/7jbt9/