【发布时间】:2011-10-17 15:09:55
【问题描述】:
在对我的 id 进行了多次 puts() 试验后,我很确定这是某种 Javascript 错误,而不是 Rails 错误...
我正在尝试使用 jQuery 的序列化函数序列化一堆 li。我想根据一组自定义的 id 来做......在我的例子中,podli-1、podli-2、podli-3 等。我尝试通过使用序列化“表达式”选项来做到这一点。
当我尝试使用警报(如下所示)对其进行调试时,我得到的结果是:id=undefined&id=undefined&id=undefined&id=undefined&id=undefined&id=undefined&id=undefined
-- 这实际上是 li 的正确数量,但由于某种原因,所有 id 都是未定义的。正如我所说,这一切都在 Rails 中运行,但是有一些 JS 错误。
这是 Rails 代码。
<% @pods.each do |podli| %>
<% @podli = podli %>
<% @iden = 'podli-' << @podli.id.to_s %>
<li id="<%= @iden %>" class="ui-state-default">
....
</li>
<% end %>
这里是javascript
$(document).ready(function(){
transitions();
//$( "#sortable" ).sortable({containment: 'parent'});
$( "#sortable" ).sortable({ items: '.ui-state-default', containment: 'parent'})//for moving the pods about
$( "#sortable" ).disableSelection();
//$("#newspod" ).val("Enable Sort").closest("#newspod").removeClass("sortable")
$('#sortable').live('sortstop', function(event) {
var u = $(this).sortable('serialize', { key: 'id', expression: /podli-\d/ })// + '&index=' + jQuery(this).attr("id").substring(19);
alert(u);
$.ajax({
type: 'POST',
data: { display_order: u },//$('#receiving-list').sortable('serialize') + '&index=' + jQuery(this).attr("id").substring(19),
url: "<%= sort_dashboards_path %>"
})
});
});
【问题讨论】:
标签: javascript jquery ruby-on-rails serialization jquery-ui-sortable