作为我正在编写的jQuery插件的一部分,我想在链接到另一个页面的页面上添加一个类来锚定标记。这是我到目前为止所得到的:
$('a').each(function(){
url = $(this).attr("href");//grab the url
if(url != undefined && url.length > 0){
if(url.slice(0, 1) != "#"){//We don't want ones that are links within the same page
//We also dont want ones that are associted with popups
rel_check = $(this).attr("rel");
if (!rel_check) {
//has it got any events attached to it?
}
}
}
});
所以我过滤掉了同一页面中的所有链接。我检查是否有任何链接有一个rel属性 - 我想这将消除一些与弹出窗口关联的锚点(我知道fancybox,greybox和lightbox使用rel标签,但并不总是......)。所以这就是我被卡住的地方。锚可以在弹出窗口中打开但不具有rel属性。我该如何检查?我认为检查附加到元素的任何事件可能会起作用,但我似乎无法让它工作。有什么想法吗?
答案 0 :(得分:0)
您最好检查target
属性。例如,带有target="_blank"
的链接将在新标签页中打开。
但是,如果链接是通过javascript管理的,那么您将无法决定是否会打开新标签/页面。因此,您可能希望消除具有单击处理程序的所有链接:
var eventObj = $(this).data('events');
if (!eventObj || !eventObj.click) {
// this element doesn't have a click handler.
}