我们有旧页面,其中包含target="_blank"
. 单击这些我想忽略它并运行一些用于打开窗口的 JavaScript。
jQuery 可以做到这一点,如果可以,我应该研究哪些方法/术语?
提前致谢
我们有旧页面,其中包含target="_blank"
. 单击这些我想忽略它并运行一些用于打开窗口的 JavaScript。
jQuery 可以做到这一点,如果可以,我应该研究哪些方法/术语?
提前致谢
只需使用事件委托来防止与 target="_blank" 的链接工作,例如:
$(document).on('click', 'a[target="_blank"]', function(event) {
event.preventDefault();
alert('Prevented');
});
$('a[target=_blank]').click(function(e){
e.preventDefault();
//do what you want here
});
演示:http: //jsfiddle.net/kkhNr/1/
试试这个
$('a[target=_blank]').click(function(event) {
event.preventDefault();
// Now make a call to your own function
});
我只是想指出@Roger C 的监听器是一个更好的解决方案……如果您的页面上有任何动态加载的内容(即AJAX 或AngularJS 单页应用程序)。
此侦听器侦听文档的点击,并将拾取新添加的内容,而无需在内容更改后重新添加侦听器:
$(document).on('click', 'a[target="_blank"]', function(event) {
event.preventDefault();
alert('Prevented');
});
此侦听器侦听在调用它时找到的所有选择器(可能缺少任何新添加的内容):
$('a[target=_blank]').click(function(e){
e.preventDefault();
alert('Prevented');
});