我有一个javascript,其中一部分如下所示,单击一个类to_comment
的锚标记将显示js中提到的div类中的文本框。
$(".to_comment").live("click", function(){
$(this).parents(".activity_content").find(".activity_new_comment").show();
$(this).parents(".activity_content").find(".input_new_comments").click();
$(this).parents(".activity_content").find(".input_new_comments").focus();
return false;
});
我在slim文件的页面中有这个简单的锚标记:
= link_to("Comment", "#", :class => "to_comment")
我已将文本区域硬编码为出现在_new.html.slim部分的div标签中,如下所示:
.activity_new_comment style="display: block;"
.actor_logo_new_comment style="display: none;"
.activity_content
.actor_name_new_comment style="display: none;"
form#new_commentactivity_22.new_comment accept-charset="UTF-8" action="/comments" data-remote="true" method="post"
div style="margin:0;padding:0;display:inline"
input#comment_owner_id name="comment[owner_id]" type="hidden" value="2"
input#comment__activity_parent_id name="comment[_activity_parent_id]" type="hidden" value="22"
.input_new_comments_container
textarea#comment_text_activity_22.input_new_comments cols="40" name="comment[text]" rows="1" style="color: rgb(102, 102, 102);"
#copy_comment_text_activity_22.copy_new_comment Write a comment...
.activities_comment_btn style="display: none;"
但点击时的超链接不会从部分加载相应div标签中的文本区域。 js文件正在浏览器中加载,示例警报也正在运行!!
答案 0 :(得分:1)
尝试将您的Javascript代码放入块中
$(document).ready(function() {
// code here
});
确保在完全加载dom后执行代码。否则,当Javascript尝试查找具有to_comment类的元素时,可能会发生HTML未完全加载的情况。
答案 1 :(得分:0)
我注意到的第一件事是.actor_logo_new_comment
设置为display: none
,但没有调用在您的代码中显示它。请注意,在元素上调用.show()
不会显示所有子元素 - 您需要直接在隐藏元素上调用.show()
。