网站上有一个div框,并且有一个链接。我想单击容器以触发<a>
:
<a href="#">sapien sed</a>
但是当我点击容器div的时候,它没有响应或者是死循环,我怎么解决这个问题呢?就是说;我想单击div以触发<a>
整个代码:
<div class="container">
<h2>Lorem ipsum dolor sit amet</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse congue molestie venenatis.
In adipiscing vulputate sem. Suspendisse potenti. Vestibulum nisl nibh, interdum sit amet pulvinar at,
malesuada vitae lacus. Aliquam semper <a href="#">sapien sed</a> risus laoreet ultrices. Donec volutpat felis eu justo
bibendum tempus. Donec non purus sed sapien fringilla tempor ut et metus. Nulla ipsum nibh, dapibus
ac ornare vitae, fermentum nec nulla.
</p>
</div>
<script type="text/javascript">
$(function(){
$("div.container").each(function(){
var $container = $(this);
$container.find("a:first").each(function(){
var $link = $(this);
$container
.css("cursor", "pointer")
.click(function(e){
$link.trigger("click");
return false;
});
$link.bind("click", function(e){
e.stopPropagation();
return true;
});
});
});
})
</script>
5条答案
按热度按时间bhmjp9jg1#
问题是,你期望
trigger("click")
导致链接的默认行为发生(即,你期望链接被跟踪,并且它所链接的页面被加载)。然而,这不是trigger
所做的。它所做的只是执行绑定到元素的click
事件处理函数。要真正跟随链接,您可以获取
href
并使用window.location
:这是一个updated fiddle。
hjqgdpho2#
要同时触发标准“href”链接和带有onClick事件的链接:
yv5phkfx3#
tvmytwxo4#
k4ymrczo5#
要确保这一点,请将函数添加到
否则div可能在代码运行之前无法加载。