2011-04-15 110 views
0

我有一个隐藏文本框。如果我点击一个按钮,div的内容就会出现。如果我再次点击Buutton,内容就会消失(.slideToggle()):我想替换我的按钮的文本,如果div的内容可见并将其更改回来,如果再次单击该按钮,并且内容的DIV,更好:DIV被隐藏起来。 这是我目前的Coce:在.click()函数中替换按钮文本功能

function show_content(){ 
    jQuery('.single_content').hide(); 
    jQuery('.css_hide').show(); 
    jQuery('.show_content').click(function(){ 
     jQuery('.single_content').slideToggle(); 
     var text = jQuery(this).html(); 
     if (jQuery('.single_content').is(':visible')) { 
      jQuery(this).html('abc'); 
     } 
    }); 
} 

我做错了什么?

非常感谢

回答

2

一个按钮是input元素,你需要设置value更新文本:

jQuery(this).val('abc');

2

尝试类似:

function show_content(){ 
jQuery('.single_content').hide(); 
jQuery('.css_hide').show(); 
jQuery('.show_content').click(function(){ 
    jQuery('.single_content').slideToggle(); 
    var text = jQuery(this).html(); 
    if (jQuery('.single_content').is(':visible')) { 
    jQuery(this).attr('value','ABC'); 
    } 
}); 
0

你代码应该如下所示:

function show_content(){ 
    $('.single_content').hide(); 
    $('.css_hide').show(); 
    var text = ""; 
    $('.show_content').click(function(){ 
     var $this = $(this); 
     var $single_content = $('.single_content'); 

     $single_content.slideToggle(); 

     if ($single_content.is(':visible')) { 
      $this.val('abc'); 
      text = j$this.val(); 
     } 
     else{ 
      $this.val(test); 
     } 
    }); 
} 

在这里,我用$为了简洁和缓存一些对象

+0

尝试上述编辑。 – 2011-04-15 16:03:24

+0

我正在使用span作为按钮。所以我需要使用.html()。顺便说一句,它仍然无法正常工作:(... – Carmen 2011-04-15 16:04:23

+0

我试过了版本,结果仍然是一样的:div出现了,跨度的文本改变了,如果再次点击跨度,div就会隐藏起来 - ,但跨度的html不会改变说明:点击显示内容的跨度,当然,如果显示内容,跨度文本没有意义,所以文本应该变为“隐藏文本”。如果我点击它,并且文本被隐藏,则跨度内容应该再次像“显示文本”一样.... – Carmen 2011-04-15 16:06:21