【发布时间】:2015-01-13 21:41:01
【问题描述】:
我有一个带有多个链接的菜单(一个 HTML 标签)。
单击一个菜单条目会添加“活动”类,它会改变菜单条目的外观和感觉。
菜单条目有 data-remove="true" 以便 Ajaxify 链接。
我想要做的是防止当用户点击2次相同的链接时调用服务器。
我的想法是,如果菜单项具有“活动”类,则阻止对服务器的调用,否则就让它过去。
我对@987654323@、stopPropagation 和return false 进行了一些尝试……但它没有按预期工作。
我得到的最好的结果是结合 preventDefault 和 stopPropagation 但控制器再也没有调用过。
如何避免在单击具有“活动”CSS 类的链接时调用控制器?
【问题讨论】:
-
我认为逻辑最适合实际执行 ajax 获取的函数,只需在 ajax 函数前面加上
if ( !$(this).hasClass('active') ) {...。 -
提供你目前掌握的标记和js
-
@adeneo 没有 Javascript 函数(我提到的是我试图编写的一个函数来阻止 ajax 调用)。多亏了 Rails 框架,将
data-remove="true"添加到链接中是很神奇的。 (我注意到我忘记了 Rails 标签) -
注意:提供此功能的不是 Rails 框架,而是 jQuery-ujs (github.com/rails/jquery-ujs/wiki/ajax)
-
好吧,preventDefault 会阻止默认行为,它不会阻止 javascript 添加的其他事件处理程序,这通常是您无法做到的,或者至少不容易做到。