jQuery click和attr不工作

时间:2014-01-12 15:01:03

标签: jquery attr

所以我在jQuery方面相对不太好,而且我的一些代码不起作用,这让我非常紧张,我试图点击一个项目,发出声音(我将在稍后介绍)然后当用户重新点击按钮时,它会返回其原始状态。问题在于当我尝试重新单击具有更改的ID的按钮(通过使用此新ID作为标识符)时,它不起作用。

我在这里创建了一个JSFiddle http://jsfiddle.net/uGQVh/

非常感谢任何帮助。

$(document).ready(function(){

    $('#guitar_string_e_active').click(function() {

        $('#guitar_string_e_active').attr("id","guitar_string_e");
        console.log("log");

    });

    $('#guitar_string_e').click(function guitar_string_e_clicked() {

        $('#guitar_string_e').attr("id","guitar_string_e_active");
    });
});

3 个答案:

答案 0 :(得分:2)

你最好切换一个班级:

jsFiddle

 $('#guitar_string_e').click(function () {
        $(this).toggleClass('active');
        if (!$(this).is('.active')) console.log("not active");
        else console.log("active");
    });

答案 1 :(得分:0)

试试这个

更新了小提琴http://jsfiddle.net/uGQVh/1/

$(document).ready(function(){

    $('#guitar_string_e').click(function (){


            $('#guitar_string_e').attr("id","guitar_string_e_active");
  $('#guitar_string_e_active').click(function(){

               $('#guitar_string_e_active').attr("id","guitar_string_e");
               console.log("log");

        });

    });

});

答案 2 :(得分:0)

首先,切换类而不是切换Id

会更好

其次,尝试类似的东西:

$('#guitar_string_e').toggle(function() { $(this).removeClass("guitar_string_e"); $(this).addClass("guitar_string_e_active"); }, function() { $(this).removeClass("guitar_string_e_active"); $(this).addClass("guitar_string_e"); });