2016-08-12 149 views
0

我有两个jQuery的功能。当调用第一个函数时,类将被删除,并且两个onclick属性正在被更改。jquery addClass()removeClass()后不工作

但是在调用函数来移除类之后,第二个函数将不起作用,所以这些类不能再被添加,并且onclick事件也会被添加。

编辑1:如前所述,第一个功能正在工作! onclick事件正在改变,这些类正在被删除。在第二个函数中再次添加相同的类和函数时不起作用!当添加一个新的类时,它正在工作,但当添加一个删除的类或onclick事件时它不起作用!

下面的代码:

// show info 
function showKursInfo() { 
    $(".kright").removeClass("kursMobileOpen"); 
    $(".kleft").removeClass("kursMobileInfo"); 

    $(".kright").attr("onclick","#"); 
    $(".kheader").attr("onclick","hideKursInfo('someInfo');"); 
} 
// hide info 
function hideKursInfo() { 
    $(".kright").addClass("kursMobileOpen"); 
    $(".kleft").addClass("kursMobileInfo"); 

    $(".kright").attr("onclick","showKursInfo('someInfo');"); 
    $(".kheader").attr("onclick","#"); 
} 

感谢您的帮助!

对那些不喜欢这个问题的人:请告诉我为什么这是一个糟糕的问题?

+0

请添加HTML代码,如果可能的添加到codepen或在的jsfiddle所有 – ristapk

+0

你并不需要设置'用jQuery onclick'属性看问题。总的来说,它提供了一组事件方法:https://api.jquery.com/category/events/mouse-events/ – BadHorsie

+0

@BadHorsie但是这实际上不是解决方案,因为类,这是主要问题! – moritzm3

回答

2

请勿使用attr注册点击事件。使用clickon

// show info 
function showKursInfo() { 
    $(".kright").removeClass("kursMobileOpen"); 
    $(".kleft").removeClass("kursMobileInfo"); 

    $(".kright").off("click"); 
    $(".kheader").on("click", hideKursInfo); 
} 

// hide info 
function hideKursInfo() { 
    $(".kright").addClass("kursMobileOpen"); 
    $(".kleft").addClass("kursMobileInfo"); 

    $(".kright").on("click", showKursInfo); 
    $(".kheader").off("click"); 
} 
+0

而这并不能解决类的问题原因。 – moritzm3

+0

然后你应该给我们更多的代码,错误或其他东西。因为它正在以这种方式工作。看到这里:https://jsfiddle.net/wejLjrxr/ @ moritzm3 – eisbehr

+0

而要证明,你的旧代码,它不工作:https://jsfiddle.net/wejLjrxr/1/ @ moritzm3 – eisbehr