有问题的代码:
var cur_url = window.location.href;#获取当前页面url
if(cur_url.indexOf('#') > 1){ #链接中有锚点
var tab = cur_url.split('#')[1]; #获取锚点的值
var lis = $('#myTab li'); #获取所有tab
$.each(lis, function(index, obj){
if($(obj).find('a').attr('href') == '#'+tab){
$(obj).find('a').click();#问题行,点击事件不起作用
return false;
}
});
}
解决的代码:
var cur_url = window.location.href;#获取当前页面url
if(cur_url.indexOf('#') > 1){ #链接中有锚点
var tab = cur_url.split('#')[1]; #获取锚点的值
var lis = $('#myTab li'); #获取所有tab
$.each(lis, function(index, obj){
if($(obj).find('a').attr('href') == '#'+tab){
console.log($(obj).find('a'));#打印出找到的a标签
$(obj).find('a')[0].click();#修改后的代码
return false;
}
});
}
上述代码中的console.log($(obj).find('a'))的结果如下图所示,
打开0:a 可查看到有各种事件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="jquery-2.0.3.min.js"></script>
<script type="text/javascript">
$(function(){
console.log($('a'));#这里查看获取的a标签
});
</script>
</head>
<body>
<div class="advantage1">
<a href="javascript:;" data-url="https://www.baidu.com">百度</a>
</div>
</body>
</html>
上面代码console.log($(a));打印的结果如下
打开0:a
能找到a标签的各种属性和事件
因此,对a标签使用click()方法触发点击事件时需要加上[0],即$(a)[0].click();