0

你好朋友我被一个令人困惑的错误阻止它看起来很简单但我无法完成我只想在点击一个时切换一个 div并像当前它在用户点击它时显示的那样ID更改它然后它的显示'显示'但是在我的代码中它没有发生,并且面板可以正常工作,切换效果请检查DEMO。请帮助我提前谢谢....html()IDHide

4

1 回答 1

3

你让这比它需要的要困难得多。我会这样做:

$('#showhide').click(function(){
  var div = $(this);
  $('.camera_discription_cont_text_container').slideToggle('slow',function() {
      div.html($(this).is(":visible") ? "hide" : "show");
  });
})

但要真正解释您的代码有什么问题,您想使用“else if”而不是第二个“if”语句,如下所示:

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

    if($(this).html()=='hide') {
        $(this).removeClass('hide');
        $(this).addClass('show');
        $(this).html('show');
    }
    else if($(this).html()=='show') {   //note the "else if", not "if"
        $(this).removeClass('show');
        $(this).addClass('hide');
        $(this).html('hide');
    }

    $('.camera_discription_cont_text_container').slideToggle('slow', function() {
        // Animation complete.
    });

})

如果在您的第​​一个if语句中,您将 html 更改为“显示”。然后语句结束,你说“如果 html 是'显示',则将其更改为隐藏”。然后它变为隐藏。换句话说,它正在从隐藏变为显示到隐藏。使用“else if”是你想要的。

于 2012-07-21T07:36:56.803 回答