尝试点击下一个“标签”链接 * 后 * 一个标记为“活动”,当我点击下一个链接。我下面的示例html结构意味着,以我有限的jQuery知识,.next不起作用,因为标签元素不是兄弟。最后的结果应该是点击Next链接,然后点击单词“pizza”周围的链接。
<div class="wrapper">
<p>some <a href="#" class="tag">text</a>here and more <a href="#" class="tag">text</a></p>
<p>some <a href="#" class="tag active">text</a>here</p>
<p>some <a href="#" class="tag">pizza</a>here and more <a href="#" class="tag">text</a></p>
<p>some <a href="#" class="tag">text</a>here and some more <a href="#" class="tag">text</a></p>
</div>
<div class="nav">
<a href="#" class="back">Back</a>
<a href="#" class="next">Next</a>
</div>
像这样的东西只在一个段落内起作用
$(".next").click(function() {
$(".active").next().click();
});
2条答案
按热度按时间alen0pnh1#
这是关于为
.back
,.next
和.tag
元素提供特定行为的所有内容。为了保持代码的组织性,使用事件处理程序来完成几乎所有的事情都是有利的,为了方便和可重用性,包括自定义事件处理程序,如下所示:
Demo
一旦您了解了这一点,作为奖励,添加一些额外的行来启用/禁用
Back
和Next
按钮以响应单击标记是相对简单的。这可以包括更多的自定义事件处理程序:Demo
注意事项:
.trigger()
和.triggerHandler()
可能会造成混淆。区别在于返回的内容。.trigger()
总是返回jQuery(用于链接),而.triggerHandler()
返回处理程序返回的任何内容。<button>
元素代替超链接来表示“上一页”和“下一页”会稍微简化一些。适当的按钮可以被固有地禁用/启用,而不需要对href
属性进行任何处理。rryofs0p2#
编辑
如果你想循环所有的标签,你可以给予他们一个自定义属性,以方便他们的查找。
请参见代码中的注解。
在整个页面中运行此片段;)
我相信你将能够在“返回”链接上应用相同的逻辑。