我必须忽略一些简单的事情,但我不明白。
我正在尝试触发列表项中超链接的点击。
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时触发超链接的点击。
答案 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);
答案 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);