我试图组织JS文件"rails way"时,在我的Rails 4应用程序中遇到了一个问题.他们以前分散在不同的观点中.我将它们组织成单独的文件,并使用资产管道进行编译.但是,我刚刚了解到,当打开turbo-linked时,jQuery的"就绪"事件不会触发后续点击.第一次加载页面时它可以工作.但是当你点击链接时,内部的任何内容ready( function($) {都不会被执行(因为页面实际上并没有再次加载).好解释:这里.
所以我的问题是:在启用turbo-links时,确保jQuery事件正常工作的正确方法是什么?您是否将脚本包装在特定于Rails的侦听器中?或者也许rails有一些魔力让它变得不必要?文档对于它应该如何工作有点模糊,特别是关于通过像application.js这样的清单加载多个文件.
我正在使用jquery datatables插件.
我只有一个直接的html表格布局.
<table class="display" id="contactsTable">
<thead>
<tr>
<th>Id</th>
<th>Email</th>
<th>Name</th>
<th>Phone</th>
<th>City</th>
<th>State</th>
<th>Arrival</th>
<th>Departure</th>
<th>Inserted</th>
<th>Check</th>
</tr>
</thead>
<tbody>
<tr>
<td>301</td>
<td>email address</td>
<td>Test</td>
<td></td>
<td></td>
<td></td>
<td>July 14 2011</td>
<td>July 23 2011</td>
<td>April 12 2011 07:05</td>
<td><input type="checkbox" name="selected[]" value="301" class="chkbox"/></td>
</tr>
<tr>
<td>300</td>
<td>email</td>
<td>Test</td>
<td></td>
<td></td>
<td></td>
<td>September 02 2011</td>
<td>September 10 2011</td>
<td>April 11 2011 12:01</td>
<td><input type="checkbox" name="selected[]" value="300" class="chkbox"/></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
这是我的提交代码(只是临时).
<input id="submitButton" type="submit" value="Submit" onclick="test()" />
Run Code Online (Sandbox Code Playgroud)
我的javascript将复选框映射到数组.
function test() …Run Code Online (Sandbox Code Playgroud) 我正在使用 jquery 数据表列出我的内容,其中具有复选框选择和选定的内容发布数据,但在提交的表单中仅发送当前页面数据。
我的数据表代码是:
$('#select').dataTable( {
"order": [[ 2, "desc" ]],
"lengthMenu": [[50, -1], [50, "All"]],
"columnDefs": [
{ orderable: false, targets: [0, 1, 3, 5] },
{ "width": "20px", "targets": [0, 1] },
{ "width": "80px", "targets": [5] }
],
});
Run Code Online (Sandbox Code Playgroud)
当我单击提交时,它仅提交当前页面值的复选框数组。
我已经引用了此链接带有选定复选框的分页。复选框仅适用于当前分页页面。jQuery 数据表,但那里提供的解决方案与链接和链接不起作用。