【发布时间】:2015-06-11 19:16:34
【问题描述】:
我有一些 jQuery 可选对象。默认情况下会选择该对象的某些项目,所以我有这样的事情:
HTML
<ol id='lunedi'>
<li class='ui-state-default ui-selected' id='lunedi-1'>1</li>
<li class='ui-state-default' id='lunedi-2'>2</li>
<li class='ui-state-default' id='lunedi-3'>3</li>
<li class='ui-state-default ui-selected' id='lunedi-4'>4</li>
<ol id='martedi'>
<li class='ui-state-default ui-selected' id='martedi-1'>1</li>
<li class='ui-state-default ui-selected' id='martedi-2'>2</li>
<li class='ui-state-default' id='martedi-3'>3</li>
<li class='ui-state-default' id='martedi-4'>4</li>
JS
// multiple selection
$(function() {
//$("#lunedi").selectable();
$("#lunedi").bind("mousedown", function(e) {
e.metaKey = true;
}).selectable();
});
// code for serialization
$(function() {
$("#lunedi").selectable({
stop: function() {
var result = $("#result-lunedi").empty();
$(".ui-selected", this).each(function() {
//var index = $( "#lunedi li" ).index( this );
var index = $(this).attr('id');
result.append("#" + index);
});
}
});
});
我想序列化选中的项目,但只有当我将选择状态至少修改为<ol> 的项目之一时它才能正常工作。
我认为这是因为 Javascript 仅在“停止”事件期间被调用,所以如果我不选择/取消选择任何内容,序列化代码将不会执行。
解决方案应该是手动调用停止例程,或者在处理数据之前对项目执行双重切换(以便在不更改值的情况下序列化结果),但我真的很困惑如何做到这一点.
【问题讨论】:
标签: javascript jquery jquery-events jquery-ui-selectable