问题:

我正在使用JQueryUI SwitchClass()方法在2个类(例如“ class1”和“ class2”)之间切换元素的显示。这应该可以前后切换显示,但是我不能切换回原来的类。

$('.class1').click()函数可以正常工作,并将<a>元素的类切换为“ class2”,样式和全部。
单击此$('.class2').click()元素后,<a>函数不会触发,尽管CSS类已经成功切换。单击后,我想将类切换回“ class1”。

样例代码:
http://jsfiddle.net/buddhaspake/F6BE8/1/

我敢肯定,我缺少一些简单的东西...任何解决方案/解决方法将不胜感激!

编辑:

我找到了2个解决问题的方法(如下所述)
1. SwitchClass()问题的解决方案:(如Rajaprabhu所建议):使用jQuery事件委托模型向外部元素(最接近的静态父级)添加istener。
此处的示例代码:http://jsfiddle.net/buddhaspake/F6BE8/5

2.使用toggleClass()的替代方法:(如adeneo所建议):根据adeneo注释链接中的示例代码使用jQuery toggleClass()方法。

最佳答案

尝试使用event-delegation,因为您是在运行时更改类的,

$(document).on('click', '.class2', function() {

});


旁注:我只是将事件委托给了文档,因为我不知道您上下文中的静态父对象,因此请使用最接近的静态父对象来委托事件。因为如果我们依赖文档,那么很明显,它将是事件冒泡到DOM树时的最后一个元素。

关于javascript - JQueryUI SwitchClass对Javascript没有影响,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24478882/

10-08 23:22