Нажмите триггер в JQuery - PullRequest
       11

Нажмите триггер в JQuery

1 голос
/ 08 декабря 2011

Я, должно быть, упускаю из виду что-то простое, но я просто не понимаю.

Я пытаюсь вызвать щелчок по гиперссылке в списке элементов.

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
...

Итак, я хочу, чтобы щелкнуть гиперссылку, когда пользователь нажимает на элемент списка.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

Я полагаю, что вы не можете активировать щелчок по гиперссылке в качестве функции безопасности браузера.Попробуйте использовать 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/

0 голосов
/ 08 декабря 2011

Использование:

(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/

...