我在网站上通过AJAX加载了不同类型的内容。
我有一个javascript函数,可以决定是否根据URL打开iframe或新标签中的链接。但问题是如何让所有链接调用javascript函数?
我试过了:
<base target= processurl()/>
有什么想法吗?
由于
编辑: JQUERY方法效果很好。但它只适用于一个链接?当我第一次点击链接时,它会正确调用该功能。但是之后我点击的任何其他链接都没有发生。
答案 0 :(得分:4)
使用jQuery&lt; 1.7:
$( 'a' ).live( 'click', function( ev ){
ev.preventDefault(); // stop normal click on link
// do stuff
} );
请注意,jQuery 1.7更喜欢使用.on
而不是.live
:
$( document ).on( 'click', 'a', function( ev ){
....
} );
答案 1 :(得分:1)
有(至少)两种方法可以解决这个问题(取决于它如何适应您的Ajax代码):
target
属性。所以第一种方式:
$(document).on("click", "a", function(e) {
// stop default navigation
e.preventDefault();
// 'this' is the particular 'a' that was clicked
var url = this.href;
// process url somehow as desired to decide whether to open it
// in new window, or iframe or to replace current page
});
注意.on()
method适用于jQuery版本&gt; = 1.7,因此对于较旧的jQuery使用.delegate()
method或真正的旧jQuery使用.live()
method
第二种方式(假设首次加载页面时所有链接都存在):
$(document).ready(function() {
$("a").each(function() {
var url = this.href;
// process url somehow and set the target attribute as appropriate
// e.g. for a new window
this.target = "_blank";
// or for an iframe
this.target = "nameofiframe"
// etc.
});
});