触发点击jQuery

时间:2011-12-08 13:15:06

标签: jquery triggers click

我必须忽略一些简单的事情,但我不明白。

我正在尝试触发列表项中超链接的点击。

JS

(function($) {
    $('li').click(function() {
        var li = $(this);

        var link = $('a', li);

        link.click();
    });
})(jQuery);

HTML

<ul>
  <li><a href="http://example.com" target="_blank">TEST</a></li>
</ul>

当我在jsFiddle上运行上述代码时出现错误:

<error>
jQuery.event.dispatch
jQuery.event.add.elemData.handle.eventHandle
jQuery.event.trigger
jQuery.fn.extend.trigger
jQuery.extend.each
jQuery.fn.jQuery.each
jQuery.fn.extend.trigger
jQuery.each.jQuery.fn.(anonymous function)
(anonymous function)
jQuery.event.dispatch
jQuery.event.add.elemData.handle.eventHandle
jQuery.event.trigger
jQuery.fn.extend.trigger
jQuery.extend.each
jQuery.fn.jQuery.each
jQuery.fn.extend.trigger
...

所以我想在用户点击listitem时触发超链接的点击。

2 个答案:

答案 0 :(得分:0)

使用:

(function($) {
    $('li').click(function(e) {
        var li = $(this);

        if ( !$(e.target).is('a') ){
            var link = $('a', li);
            window.open(link.attr('href'), link.attr('target'));
        }
    });
})(jQuery);

测试: http://jsfiddle.net/vFZ3Z/1/

答案 1 :(得分:0)

我相信您无法触发超链接点击作为浏览器安全功能。尝试使用JavaScript显式打开窗口:

(function($) {
    $('li').click(function(e) {
        var link = $(this).find('a');
        link.click();
    });
    $('a').click(function(e) {
        e.stopPropagation();
        var href = $(this).attr('href');
        var tgt = $(this).attr('target');
        window.open(href,tgt);
        return false;
    });
})(jQuery);

http://jsfiddle.net/mblase75/CKucA/15/