0

单击文本区域时,只需编写一个 jquery 来显示评论按钮。隐藏评论按钮点击屏幕上的其他地方。它在 Firefox 中运行良好。但在 Chrome 中它只工作一次。当我再次单击 textarea 时,提交按钮未显示,它仍然隐藏。

$(document).on('click', ".comment_txt, .comment_btn", function() {
  var post_id = $(this).attr("post-id");      
  $("#comment_btn_div_"+post_id).show();
});
$('body').click(function() {
  $(".comment_btn").hide()
});


<form class="comment_submit" action="http://localhost:3000/api/v2/posts/48774/comment" data-post-id="48774" id="comment_form_48774">
    <textarea post-id="48774" id="comment_txt_48774" placeholder="Comment" cols="40" rows="1" class="width100 comment_txt"></textarea>
    <div id="comment_btn_div_48774" class="right comment_btn" post-id="48774" style="display:none">
      <button onclick="$(this).text('commenting...')" class="btn btn-small btn-info right" id="comment_btn_48774" type="submit">Comment</button>
    </div>
</form>

不知道为什么这在 Chrome 中不起作用。我的页面中有很多表格。所以我做 $(".comment_btn").hide()了身体点击。为了显示特定的评论按钮,我正在使用此代码$("#comment_btn_div_"+post_id).show();

更新:

隐藏评论按钮后,即使我从萤火虫控制台执行 $("#comment_btn_div_23232").show() 。它没有显示div。

更新 2(使用警报进行测试):

$(document).on('click', ".comment_txt, .comment_btn", function() {
  alert("commenttext area clicked");
  $(".comment_btn").show()
});
$('body').click(function() {
  alert("body clicked");
  $(".comment_btn").hide()
});
  1. 单击文本区域,得到警报。身体点击 b. 评论文本区域单击。现在显示评论按钮
  2. 被点击的身体得到了警报。身体咔哒一声。现在评论按钮被隐藏
  3. 单击文本区域,得到警报。身体点击 b. 评论文本区域单击。现在评论按钮不显示

谢谢!

4

3 回答 3

0

用模糊试试

$(document).on('click', ".comment_txt, .comment_btn", function () {
    var post_id = $(this).attr("post-id");
    $("#comment_btn_div_" + post_id).show();
});

$('.comment_txt').blur(function () {
    $(".comment_btn").hide()
});

小提琴

于 2013-06-24T11:00:10.090 回答
0

我每隔一段时间就会遇到这种情况。还没有弄清楚为什么会这样;它让我感到困惑。我通过使用“显示” div 的其他方式之一来解决它。最近,我更改了 css 显示属性:

$("#comment_btn_div_"+post_id).css('display','block');

于 2014-05-30T17:33:34.277 回答
-1
var post_id=null;
$(document).on('click', ".comment_txt, .comment_btn", function(event) {
  post_id = $(this).attr("post-id");      
   $("#comment_btn_div_"+post_id).show();
   event.stopPropagation();

   $('body').bind("click",function() {
        $("#comment_btn_div_"+post_id).hide()
        $(this).unbind();
   });
});

我希望它对你有用

于 2013-06-24T10:16:54.207 回答