我有
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>
我的查询 :
//showCommentBox
$('a.showReply').live("click", function(e){
$('#replymsgbox', $(this).parent().next()).slideToggle('fast')
});
有人会帮我吗?我无法打开回复div 或表单。我做错的地方
在最新版本的 jQuery 中使用以下命令。
$('a.showReply').on("click", function(e){
$('#replymsgbox').slideToggle('fast')
});
$(function() { // if javascript code is before html
$('a.showReply').click(function(e){
$('#replymsgbox').slideToggle('fast')
});
});
http://jsfiddle.net/gxLdd/
$("a.showReply").on("click", function(){
$(this).parent().parent().next().slideToggle("slow");
});
这是测试: http://jsfiddle.net/2HczB/
我使用 next() 是因为我在您的代码上看到了您尝试以这种方式执行的操作。最好立即调用div 的 id。但是,使用我的解决方案,您可以在单击回复的消息后准确打开回复。
示例
$('a.showReply').on("click", function(e){
$('#replymsgbox').slideToggle('fast')
});
您还需要在两个div
之间添加一些填充或空格,以确保内容不会重叠。在示例中,我刚刚添加了一个<br/>
。
请注意从 .live
到 .on
的更改,因为它现已弃用。
看这里:
从jQuery 1.7开始,.live()方法已被弃用。使用 .on() 来 附加事件处理程序。
通过将 jQuery 代码放在 $(document).ready(function{ ... })
中来确保文档也已准备就绪。我相信您可能已经在这样做并且刚刚粘贴了相关代码,但总是很好的确保。