jQuery show click on click textarea

时间:2011-07-29 18:43:14

标签: jquery

我有以下代码:

<div class="question">
 <span class="text_area>
  <textarea name="text1" id="response1" rows="3" cols="50"/>
 </span>
<div>
<div class="questionRespond">
 <input type="checkbox" name="chk_1"/>
  <span>
   <input class="questionbutton" id=send1Button/>
  </span>
</div>
<div class="question">
 <span class="text_area>
  <textarea name="text1" id="response1" rows="3" cols="50"/>
 </span>
<div>
<div class="questionRespond">
 <input type="checkbox" name="chk_2"/>
  <span>
   <input class="questionbutton" id=send1Button/>
  </span>
</div>
<div class="question">
 <span class="text_area>
  <textarea name="text2" id="response3" rows="3" cols="50"/>
 </span>
<div>
<div class="questionRespond">
 <input type="checkbox" name="chk_3"/>
  <span>
   <input class="questionbutton" id=send3Button/>
  </span>
</div>

基本上它是texarea,下面有一个复选框和按钮。我希望复选框和按钮仅在用户单击textarea时显示。这可以在jQuery中完成吗?

5 个答案:

答案 0 :(得分:2)

首先要确保隐藏的元素最初是隐藏的,因为显然没有人点击textarea。然后你想要一个点击处理程序附加到所有textareas,并显示复选框和按钮。

// Initially hide controls (should be better done without JavaScript)
jQuery('.questionRespond').hide();

// Handle the clicks
jQuery('.question textarea').click(function(){
    // this points to the textarea, look for the question div first, then the following response controls
    var respondControls = jQuery(this).closest('.question').next();
    respondControls.show();
});

请记住修复HTML,因为您正在重复标识符并省略引号。

答案 1 :(得分:0)

最初用css隐藏questionRespond类,然后跟随jquery将显示div

    $('.text_area textarea').click(function(){
         $(this).closest('.question').next().show();
    })

答案 2 :(得分:0)

试试这个

$(document).ready(function(){

 $(".questionRespond").hide();

  $("textarea").each(function(){
      $(this).click(function(){

        var qrcontainer = $(this).closest(".question").next(".questionRespond");
        qrcontainer.show();


   });
});

答案 3 :(得分:0)

你可以使用焦点

$(document).ready(function(){
$('.questionRespond').hide();

$('textarea').focus(function(){
   $(this).closest('div. question').next('div.questionRespond').show();
}
);
});

答案 4 :(得分:0)

// make questionRespond display:none
<div class="questionRespond" style="display:none">

// this will show the divs on clicking textarea
$('textarea').focus(function(){

      jQuery(this).closest('.question').find('.questionRespond').show();       
})


// this function will hide divs when you leave that textarea
$('textarea').blur(function(){

      jQuery(this).closest('.question').find('.questionRespond').hide();       
})