jQuery检查目标是否为链接
jQuery check if target is link
我有一个全局函数来捕获点击。
$(document).click(function(e){
//do something
if(clickedOnLink)
//do something
});
我想做额外的东西,当目标是一个链接,但如果<a>
标签实际上包围了一个div (HTML5允许)的目标将是那个div。
你可以试着看看你点击的元素是否是<a>
标签的子元素。
$(document).click(function(e){
if($(e.target).closest('a').length){
alert('You clicked a link');
}
else{
alert('You did not click a link');
}
});
我相信使用is
实际上会比使用closest
的答案有更好的性能:
$(e.target).is('a, a *');
检查元素本身是否为a
,或者它是否包含在a
中。
这应该比closest
快,因为它将在元素本身上使用匹配,而不需要像closest
那样遍历DOM树。
试试这个
$(document).click(function(e){
//do something
if($(this).closest('a').length)
//do something
});
如果确切的目标是link,那么您可以使用.is()
的例子:
$(".element").on("click", function(e){
if($(e.target).is("a")){
//do your stuff
}
});
编辑:
如果它被锚标记内的其他元素包围,那么您可以使用closest()
并使用length
检查它是否有锚标记父或不
的例子:
$(".element").on("click", function(e){
if($(e.target).closest("a").length){
//do your stuff
}
});
使用jquery获取tagName属性$("a").prop("tagName");
更新:您可以检查目标是否为a,或者父对象是否为a。
$(function () {
$(document).on('click', function (e) {
$target = $(e.target);
if ($target.closest('a').length > 0) {
alert('i am an a');
}
});
});
http://jsfiddle.net/8jeGV/4/您可以通过测试.children()
<div>
是否有任何内容来测试<a>
下是否有<div>
。如果里面没有任何内容,或者没有<div>
,则if
语句将返回false
。
我建议这样写:
$(document).click(function(e){
var willRedirect = ($('a[href="/"]').attr('href').indexOf('#') == -1 ? true : false),
//run code
if ( willRedirect === false ){
e.preventDefault();
//the link will not redirect
if ( $(this).children('div').html() ){
//there is a <div> inside <a> containing something
}
else {
//there is no <div> inside <a>
}
}
else {
//the link is not pointing to your site
}
});
相关文章:
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 是否可以检测链接是否已被JavaScript禁用
- 链接是否可以调用它指向的页面上存在的 javascript
- 检查链接是否为图像
- 这种类型的 img 链接是否有插件
- ios:如何检测自定义url方案链接是否失败
- 在不下载文件的情况下检查下载链接是否正常工作
- Javascript-根据链接是否属于图像来分离链接
- 检测HTML链接是否被点击
- 在onclick上确定所单击的链接是否意味着打开一个新窗口或选项卡
- 检查链接是否已在另一个窗口中打开[JS或jQuery]
- 我可以确定单击链接是否成功打开了一个新窗口/选项卡
- 如何检测链接是否被点击时的窗口.Onbeforeunload被触发
- 使用jQuery检查链接是否存在
- 如何使用javascript检查某个网站的链接是否正确
- 如何在javascript中检查链接是否被点击
- 我们可以检测一个链接是否在一个有jQuery.click()的DIV中被点击了吗
- 按钮和链接是否会增加移动响应度
- 检测链接是否用于访问页面
- 检查链接是否包含javascript