我有这个
...
<li style="padding: 50px;">
<a href="blabla" style="background:red;">Click Me</a>
</li>
...
大家可能都知道<a>
标签的尺寸会更小。
我想使用jquery ......
$('li').click(function (){
$(this).find('a').trigger('click');//does not work :(
alert($(this).find('a').attr('href'););//returns blabla//which is correct
});
为什么不能以这种方式触发<a>
的任何想法?
PS
答案 0 :(得分:4)
jQuery的trigger
函数将调用使用jQuery注册的事件处理程序。
它不会模拟真正的点击。
相反,你可以写
location = $(this).find('a').attr('href');
答案 1 :(得分:1)
$(this).find('a').trigger('click')
仅触发javascript事件,而不是默认事件
这是修复
$('li').click(function (){
var url = $(this).find('a').attr('href');
location.href= url
});
您也可以简化它:
$('li').click(function (){
location.href= $(this).find('a').attr('href');
});
答案 2 :(得分:0)
怎么样:
$(this).find("a:first").click();
我想这是因为你没有使用jQuery将“a”的onclick事件绑定到任何东西: - )
答案 3 :(得分:0)
我认为CSS足以做你想做的事......
您想要的只是链接标记占用所有<li>
空间。
在很多情况下,display:block;
代码上的<a>
就足够了,但我对您的HTML / CSS一无所知^^
答案 4 :(得分:0)
使用JavaScript,您无法模拟浏览器的本机点击。你必须为你的链接设置一个事件处理程序,一旦你触发'click'就会被触发。从那里你可以使用SLaks location = ...
方法。