我正在尝试添加一些导航箭头,允许用户转到列表中的下一个/上一个链接。
点击箭头时,我无法让jQuery触发下一个链接上的点击事件。
我已经使用addClass()设置了一个测试,我可以看到jQuery正在引用正确的链接,因为它将类添加到它,它只是不触发它上面的click事件。
HTML:
<ul class="menu">
<li class="active">
<a href="#thelink#">Link text</a>
</li>
<li>
<a href="#thelink2#">Link text 2</a>
</li>
<li><a class="next-page" href='#'>></a><li>
</ul>
jQuery的:
$jQ(".menu a.next-page").click(function() {
$jQ('.menu li.active').next().find('a').addClass('test');
$jQ('.menu li.active').next().find('a').click();
});
使用此代码,当我单击下一个箭头时,它会将类“test”添加到第二个列表项中的链接,但不会单击该链接。
答案 0 :(得分:2)
这是一个非常复杂的例子(因为我不确定你的点击需要做什么)但是把它留在评论中似乎是不对的:
var doStuff = function(obj) {
alert("I did the stuff related to " + obj.attr('href') + "! Woot!");
};
$('a').not('.next-page').on('click', function(e) {
e.preventDefault();
doStuff($(this));
});
$(".menu a.next-page").on('click', function(e) {
e.preventDefault();
$nextAnchor = $('.menu li.active').next().find('a');
doStuff($nextAnchor);
});
愚蠢的doStuff()
函数只代表点击时发生的事情。请注意,我将某些行为绑定到所有锚标记(下一页锚点除外!)和其他行为到下一页锚点。最终他们都做同样的事情:为有问题的物体开火doStuff
。但理论上,你可以让他们在doStuff()
的共享功能之前和/或之后做不同的事情。
答案 1 :(得分:0)
尝试使用它:
$jQ('.menu li.active').next().find('a')[0].click();
答案 2 :(得分:0)
使用“触发器”来触发您想要的任何事件 http://api.jquery.com/trigger/
$('li a.next-page').click(function() {
$('li.active a').trigger('click');
});
所以基本上使用你的代码应该是
$jQ(".menu a.next-page").click(function() {
$jQ('.menu li.active').next().find('a').addClass('test');
$jQ('.menu li.active').next().find('a').trigger('click');
});
答案 3 :(得分:0)
有时点击不会触发尝试:
$jQ(".menu a.next-page").live("click",function() {
$jQ('.menu li.active').next().find('a').addClass('test');
$jQ('.menu li.active').next().find('a').click();
});
或
$jQ(".menu a.next-page").on("click",function() {
$jQ('.menu li.active').next().find('a').addClass('test');
$jQ('.menu li.active').next().find('a').click();
});