第二次单击(function())后从第一次单击(function())中删除属性的问题

时间:2013-05-15 03:30:56

标签: jquery slidetoggle

晚上女士和男士,

在第二次单击功能发生后,我试图找出如何从第一次单击功能中删除属性,这有点蠢。

<script type="text/javascript">
$(document).ready(function(){

$('.description').hide();

$('.open').click(function(){
    $(this).attr('id', 'active');  
    $('.description').hide(); 
    var section = $(this).attr('rel');
    $(section).slideToggle('fast');
});

$('.close').click(function(){
    $(this).parents('.description').slideUp('fast'); 
    $('.open').removeAttr('id', 'active');   
});
});
</script>

我的意思是,虽然我的隐藏DIV上有一个关闭按钮,一旦点击它就可以正常工作(即它从.open类中删除属性),我看不到它如果通过单击然后单击下一个功能关闭隐藏的DIV,则可以正常工作。

我可能真的不能很好地解释自己,所以也许一个例子更容易:

Click Function Issues Here

我只为前两个菜单项(Cashier&amp; Deli)创建了DIV,所以这些是我要使用的两个例子。如果单击“收银台”项目,则会显示隐藏的DIV,如果您在该DIV(右侧对齐)上按“关闭”,则活动状态将在第一个菜单项上消失。大。这很有效。

但是,如果我决定不通过“关闭”链接关闭隐藏的DIV,而是通过单击下一个菜单项(熟食店),收银台和德利菜单项都保持活动状态。所以,我的问题是,当第二个菜单项上出现第二次点击功能时,我是否可以以某种方式将其删除。

提前非常感谢!

1 个答案:

答案 0 :(得分:0)

您正在通过删除id属性来执行非常糟糕的方法,因为您可以非常轻松地执行相同的任务。

此外,我看到你正在使用精灵,你已经为它准备了相关的图像..

所以尝试这种方法..

$('.description').hide();

$('.open').click(function(){
    var $this = $(this);
    $('.description').hide(); 
    $this.addClass('active');
    // Select all the open tags
    var $tags = $('.open').not($this);
    // Remove the active class for all the items except the clicked open
    $tags.removeClass('active');

    var section = $(this).attr('rel');
    $(section).slideToggle('fast');
});

$('.close').click(function(){
    $(this).closest('.description').slideUp('fast'); 
    $('.open').removeClass('active');
});