我的 .html.erb 中的动态 Javascript
我在我的第一个 Rails 应用程序中遇到了一些 Javascript 问题。
部分:_care_point.html.erb
<script>
$(function() {
$( ".draggable" ).draggable({grid: [50, 20]});
$( ".node_input").each (function() {
$(this).hide();
});
$("#<%="node.#{care_point.id}" %>").live('dblclick', function(){
console.log('moo');
jQuery(this).hide();
jQuery('.node_input', jQuery(this).parent()).show();
});
});
</script>
<div id=<%="care_point.#{care_point.id}" %> class='draggable node_chin'>
<div id=<%="node.#{care_point.id}" %> class='node'><%= care_point.body %>
</div>
<textarea class='node_input'><%= care_point.body %></textarea>
</div>
这是输出:
<script>
$(function() {
$( ".draggable" ).draggable({grid: [50, 20]});
$( ".node_input").each (function() {
$(this).hide();
});
$("#node.1").live('dblclick', function(){
console.log('moo');
jQuery(this).hide();
jQuery('.node_input', jQuery(this).parent()).show();
});
});
</script>
<div id=care_point.1 class='draggable node_chin'>
<div id=node.1 class='node'>Moo foo
</div>
<textarea class='node_input'>Moo foo</textarea>
</div>
我首先添加了基于类的 dblclick 事件侦听器,但这导致它被添加多次。这让我将其更改为基于 id 的方法,但现在它不起作用。是因为我尝试动态建立 id 吗?
这里是做这种事的合适地方吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请尝试以下操作:
Try the following:
问题就在这里:
要工作它必须是:
我不是红宝石专家,但你必须在这里改变一些东西:
我会尝试(但我猜测 - 编辑)
编辑 - 尝试删除 HTML id 中的点:看看这个小提琴 http://jsfiddle.net/JeHuD/
替换
为(在jquery选择器和在HTML(还请考虑您在html中的id应该有双引号,如下所示:id =“node1”)
最终编辑 - 在jquery选择器中,您必须转义点withdoubole 反斜杠:这是与点 http://jsfiddle.net/JeHuD/1/< 配合使用的更新小提琴/a>
The problem is here:
To work it must be:
i'm no expert of ruby but you must change something here:
I'd try (but i'm guessing - edited)
EDIT - Try removing the dots in the ids of th HTML: look at this fiddle http://jsfiddle.net/JeHuD/
replace
with (both in the jquery selector and in the HTML (also consider that your id in the html should have double quotes like this: id="node1")
FINAL EDIT - in the jquery selector you must escape dots withdoubole backslashes: here is the updated fiddle that works with the dot http://jsfiddle.net/JeHuD/1/