当用户点击指向我网站上不同页面的任何超链接时,我需要阻止用户界面。 我知道有一种方法可以使用ajaxStart和ajaxStop跟踪所有jquery ajax请求,当浏览器等待来自服务器的响应时,我可以使用这些方法阻止我的UI。 但有没有办法拦截所有主流浏览器(firefox,Chrome和IE)的所有传出页面请求?
答案 0 :(得分:5)
您可以绑定委托事件处理程序,该处理程序拦截将导航到您网站页面的所有<a href>
元素的点击次数:http://jsfiddle.net/sNDf3/2/。
$("body").on("click", "a[href]", function(e) {
// <a> elements have a .host property which represents the host of the href
// so you can block internal links only
if(this.host === "jsfiddle.net" && !confirm("Sure?")) {
e.preventDefault();
}
});
即使您稍后因为委托而添加链接(将实际处理程序绑定到持久父级),这也会起作用。