0

我正在尝试使用 jquery 在单击<a>父 div 时触发对标记的单击

对于这个结构

<div id="menu_container">

                <ul id="header_links_container">


                    <li class="header_link header_link_large border_box_1">
                        <a class="header_link" href="http://amazon.com">LINK 1</a>
                    </li>

                    <li class="header_link border_box_1">
                        <a class="header_link" href="http://google.com">LINK 2</a>
                    </li>


                    <div class="tbc"></div>

                </ul>

            </div>

使用这个

$('#menu_container').on('click', 'li.header_link', function(){
    console.log($(this));
    $(this).children('a.header_link').click();  
});

产生和无限量的点击。我猜是因为当我触发<a>标签上的 click() 时,它的父 div 也会收到一次点击,所以它只是再次执行所有操作。

当单击父 div 时,如何模拟对锚点的单击?尝试使用此 SO 帖子中的答案是行不通的。

jsbin 示例

谢谢

4

2 回答 2

2

不能触发Anchor 的单击事件,以便您可以转到该特定源。

您需要明确单击它以使其以您期望的方式工作。

您可以尝试的最佳选择是使用window.location

试试这个

$('#menu_container').on('click', 'li.header_link', function(e){
   console.log('clicked');
   var loc = $(this).find("a.header_link").attr('href');
   window.location = loc;
});

这将不起作用,jsBin因为它试图停止重定向。在你的本地机器上试一试​</p>

于 2012-12-13T23:14:29.733 回答
2

您可以使用Elements click 方法而不是 jQuery 的。

$('#menu_container').on('click', 'li.header_link', function(){
   console.log('clicked');
   $(this).find("a.header_link").get(0).click();
});

您也应该按照@Sushanth的建议在您的计算机上尝试它。

于 2012-12-14T00:30:03.117 回答