0

我有 div 之类的评论

<div>
  <div>
    Some message over here
   </div>
   <div style = "height:10px;"> <a id = "post_id_1" class = "showReply" href = "javascript: void(0)">Reply</a></div>                                        
</div>

我的回复框

<div id="replymsgbox" style="display: none;">
    <form id="frmComment" novalidate="novalidate" method="POST" name="frmComment">
        <div>
            <textarea id="comment_text" class="" name="comment[text]"></textarea>
            <div id="error_text"> </div>
        </div>
        <div>      
            <input type="submit" value="Post" name="Submit">
        </div>
    </form>
</div>    

我的jQuery:

//showCommentBox

$('a.showReply').live("click", function(e){ 

$('#replymsgbox', $(this).parent().next()).slideToggle('fast')

});    

有没有人能帮帮我。我无法打开回复 div 或表单。我在哪里做错了

4

4 回答 4

1

将以下内容与最新版本的 jQuery 一起使用。

$('a.showReply').on("click", function(e){ 

   $('#replymsgbox').slideToggle('fast')

});    
于 2012-10-11T15:03:50.093 回答
0
$("a.showReply").on("click", function(){

    $(this).parent().parent().next().slideToggle("slow");

});  

这是测试:http: //jsfiddle.net/2HczB/

我与 next() 一起使用,因为我在您的代码中看到您尝试以这种方式进行操作。最好立即调用 div 的 id。但是,使用我的解决方案,您可以在单击回复的消息后准确打开回复。

于 2012-10-11T15:13:00.890 回答
0
$(function() {   // if javascript code is before html
   $('a.showReply').click(function(e){ 
       $('#replymsgbox').slideToggle('fast')
   }); 
});

​http://jsfiddle.net/gxLdd/

于 2012-10-11T15:05:46.360 回答
0

例子

$('a.showReply').on("click", function(e){ 
   $('#replymsgbox').slideToggle('fast')   
});

您还需要在两个divs 之间添加一些填充或空格,以确保内容不重叠。在示例中,我刚刚添加了一个<br/>.

请注意从.live到的更改.on,因为它现在已被弃用。

这里

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。

​通过将 jQuery 代码放入$(document).ready(function{ ... }). 我敢肯定,您可能已经这样做了,并且只是粘贴了相关代码,但确保总是好的。

于 2012-10-11T15:07:00.850 回答