2

可能重复:
如果我还没有使用 bind 或 click 将事件处理程序绑定到它,我可以调用 jquery click() 来跟踪 <a> 链接吗?

我写了以下代码。

<div style="background-color:orange">Click me to open the link
    <br>
    <a target="_blank" href="http://example.com">Link</a>
</div>

<script>
    jQuery('div').click(function(){
        jQuery('a').click();
    });

    jQuery('a').click(function(e){
       alert('It came here!');           
       e.stopPropagation();
       return true;   
    });
</script>

但是链接打不开。

更新:将目标属性添加到 A 标记。

4

3 回答 3

3
<div style="background-color:orange">Click me to open the link
    <br>
    <a id="b" href="http://example.com">Link</a>
</div>

jQuery('div').click(function(){
    document.getElementById('b').click();
});

小提琴:http: //jsfiddle.net/zZqQs/4/

或者:

jQuery('a')[0].click();

似乎 jquery click 和 raw JS click 彼此不同。

于 2012-10-18T07:37:24.910 回答
1

首先,您使用的选择器将匹配页面上的所有 <a>标签。也许你想给你<a>一个 id 属性,这样你就可以定位一个特定的元素......

<a href="foobar.html" id="foo">foo</a>

您也可以尝试使用该trigger功能来模拟对元素的点击 -

$('#foo').trigger('click');

最后要提到的一件事是您实际上并没有调用该方法来打开链接。您可以尝试使用此代码 -

jQuery('a').click(function(e){
   alert('It came here!');
   window.open($(this).attr('href'));    
   return false;   
});

参考 -

描述:执行所有附加到给定事件类型的匹配元素的处理程序和行为。

于 2012-10-18T06:57:18.337 回答
1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>    
<div style="background-color:orange">Click me to open the link
    <br>
    <a href="http://example.com" target="_blank">Link</a>
</div>

<script>
    $('div').click(function () {
        $('a').click();
    });

    $('a').click(function (e) {

        alert('It came here!');
        e.stopPropagation();
        window.location = $("a").attr("href");
        return true;
    });
</script>
于 2012-10-18T07:05:35.500 回答