0

我在页面上有 jQuery 滑动 div,这些 div 使用每个滑块上的按钮进行切换。单击按钮时,内容向下滑动,按钮上的文字由“查看更多”变为“关闭”。再次单击按钮时,内容会向上滑动,并且按钮上的文本会变回“查看更多”。我在下面发布的 jQuery 适用于此功能。

我现在想让其中一个滑块在 url 中有哈希标签时自动向下滑动。我用下面的代码得到了这个。在此自动滑动期间,触发按钮上的文本更改为“关闭”,这是我想要的,但是当我单击按钮向上滑动时,文本不会更改回“查看更多”。然后,当我单击切换按钮时,它再次开始更改按钮上的文本,但这次是从“关闭”而不是“查看更多”开始,因此与之前的更改相反。这有什么意义吗?哈哈。

有什么想法可以设置我的jQuery,所以当我在哈希自动打开后单击“关闭”按钮时,它会将文本更改为“查看更多”?谢谢你的帮助

    <script language="javascript">
 $(document).ready(function() {

        $('#toggleButton1').click(function() {$('#toggleSection{row_count}').slideToggle('slow', function() {
         // Animation complete.
            });
        });
            $('#toggleButton1').toggle(
                function() {$('#toggleButton1').html('Close');
            },
                function() {$('#toggleButton1').html('View More');
           });

        {/facility_sections}
        {/exp:channel:entries}

        if (window.location.hash) {
            $('#toggleSection1').slideToggle('slow');
            $('#toggleButton1').html('Close');}
});
</script>
4

1 回答 1

0

你为什么不改变点击按钮上的文字?您可以将此代码添加到单击功能

        $(document).ready(function() {
           $('#toggleButton1').click(function() {

           var buttonValue = $(this).val();
           switch(buttonValue)
           {
             case 'Close':
              buttonValue = 'View More';
              $('#toggleSection1').hide('slow');
              $('#toggleSection2').show('slow');
              break;
             case 'View More':
              $('#toggleSection1').show('slow');
              $('#toggleSection2').hide('slow');
              buttonValue = 'Close';
              break;
          }
          $(this).val(buttonValue);
   });
});

这是html:

<div id='toggleSection1' style='display:none'>toggle section 1</div>
<div id='toggleSection2' style='display:none'>toggle section 2</div>

<input type='button' id='toggleButton1' value='View More' />​

另一种选择是有一个布尔值来指示它是否关闭,因此只需声明您可以访问的变量

var isClose = false;

这是一个简单的代码,你可以看看 http://jsfiddle.net/2R9yE/11/

于 2012-06-15T01:58:38.993 回答