bca*_*lla 7 javascript ruby-on-rails ujs
我有一个简单的表单被附加到容器:
<form action="/something" data-remote="true" method="post">
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
我的理解是rails_ujs.js捕获所有提交事件,因此在插入新表单时我不需要重新附加任何事件.但是,此表单不会被视为远程表单.即使我rails_ujs.js在一般提交事件中放入调试器,此表单也不会触发该事件.所有表单呈现服务器端触发都没问题.
我是否错过了必须将事件附加到动态插入表单的内容?
我不确定 Rails_ujs.js 是如何工作的,但我认为您的问题在于您在客户端添加的 html 内容不会响应已绑定的事件。解决方案是,每当您在客户端添加新的 HTML 元素时,您还必须将任何事件绑定到它。
考虑以下示例:
<html>
<head>
<title>My Page</title>
<script src="jquery.js"></script>
</head>
<body>
<div id="content">
<a href="#" class="link">Click me</a>
</div>
<a href="#" class="add_link">Add link</a>
<script type="text/javascript">
$(document).ready(function(){
$('.link').click(function(){
alert('Click me');
});
$('.add_link').click(function(){
$("#content").append("<a href='#' class='link'>Click me no alert...</a>");
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当您单击“添加链接”链接时,它将添加一个链接,上面写着“单击我”并且具有“链接”类。但是,如果您单击此链接,它不会显示警报,也就是说,单击事件不会触发,它只会针对服务器端生成的内容触发。
这个问题更详细地描述了解决方案: In jQuery, how to Attach events todynamic html elements?
但是我不确定如何将它应用到rails_ujs,你可能需要在那里做一些修改。
| 归档时间: |
|
| 查看次数: |
2839 次 |
| 最近记录: |