删除attr是行不通的

时间:2014-01-23 13:53:44

标签: javascript jquery html

我有一个像手风琴一样的剧本, 这是我的剧本

$(document).ready(function(){

    $('.film').click(function(){
        $('.film').attr('id','activeMenu');
        $('#film').slideToggle();       
    });

    $('#activeMenu').click(function(){
        $('.film').removeAttr("id");        
    });

});

这是activeMenu点击时的样式

.activeMenu{
    background:#C9FF26; 
}

如果我点击.film并再次点击,则id=activeMenu不会被删除

谁知道这个问题? 感谢

2 个答案:

答案 0 :(得分:3)

您的问题发生的原因是,当您致电$('#activeMenu').click(...)时,您定位的元素实际上并没有该ID。

你可以潜在地使用$(document).on('click', '#activeMenu', ...)(即委托的事件处理程序)即使#activeMenu尚不存在也会有效但我不禁感到这将是错误的解决方案。在现有元素上动态添加或删除ID几乎不需要永远。一个适当的解决方案将取决于你正在努力实现的目标。

答案 1 :(得分:-4)

您需要使用.on方法在#activeMenu上注册点击事件

$('#activeMenu').on('click',function(){
        $('.film').removeAttr("id");        
    });