Jquery Switchclass Keeps Switching Back
What I am trying to do is to make a button on click, go to the top left slot in the crafting table on this page. Then if the element is clicked again it will go back. The specific
Solution 1:
Just checked your code on the page you linked to. You have bound two click handlers to #sword. You have only shown the first one. Your code is as follows
$("#sword").click(function () { // handler 1if ( $("#sword").hasClass("s1") ) {
        $('#sword.s1').switchClass("s1", "sd1", 1000, "linear");
    } elseif ($("#sword").hasClass("sd1")) {
        $('#sword').switchClass( "sd1", "s1", 1000, "linear" );
        $('#bukkit').switchClass( "s1", "sd2", 1000, "linear" );
        $('#grass').switchClass( "s1", "sd3", 1000, "linear" );
    }
});
// a few lines later    
$("#sword").click(function() { // handler 2
    $('#sword').switchClass( "s1", "sd1", 1000, "linear" );
    $('#bukkit').switchClass( "s1", "sd2", 1000, "linear" );
    $('#grass').switchClass( "s1", "sd3", 1000, "linear" );
}); 
Clicking on the sword executes handler 1 first and then handler 2. As is clear from the code, handler 1 moves it up and handler 2 brings it down.
If you explain why you wrote the second handler, I might be able to help more.
Solution 2:
Try to re-order your switchClass classes of id sword is changed to sd2 after it changes from sd1 to s1
$("#sword").click(function () {
    if ( $("#sword").hasClass("s1") ) {
        $('#sword.s1').switchClass( "s1", "sd1", 1000, "linear" );
    } elseif (  $("#sword").hasClass("sd1") ) {
        $('#bukkit').switchClass( "s1", "sd2", 1000, "linear" );
        $('#grass').switchClass( "s1", "sd3", 1000, "linear" );
        $('#sword').switchClass( "sd1", "s1", 1000, "linear" );
    }
});
Post a Comment for "Jquery Switchclass Keeps Switching Back"