我使用的是jquery-ui selectable,我选择了多个div,例如:选择之后,div 1-3和div 5-6将div的信息传递给数组,然后传递给字符串(strToSend)。问题是:当我选择divs 1-3和divs 5-6时,我会收到以下信息:divs 1-3:100,200,300。对于div的5-6:100,200,300,400,500,600。->我真正需要的是:500,600。起初我以为我需要在每个循环中清除数组,所以我尝试了_info1.length = 0; _info1 = [];
--无变化。我希望我的问题很清楚,请提出主意该怎么办?..
// HTML
<div class="ui-selectable" id="day" style="width: 100px; float: left;">
Sunday
<div class="ui-selectee" id="1" >100 </div>
<div class="ui-selectee" id="2" > 200 </div>
<div class="ui-selectee" id="3" > 300 </div>
<div class="ui-selectee" id="4" > 400 </div>
<div class="ui-selectee" id="5"> 500 </div>
<div class="ui-selectee" id="6"> 600 </div>
<div class="ui-selectee" id="7"> 700 </div>
</div>
// jQuery
$(function () {
$("#day").bind("mousedown", function (event) {
return event.metaKey = true;
}).selectable({
stop: function () {
_info1.push(0);
$(".ui-selected", this).each(function () {
var id = this.id;
_info1.push(id);
});
strToSend += _info1[0] + "_" + _info1[1] + "-" + _info1[_info1.length - 1] + "*";
}
});});
这是一个小提琴:http : //jsfiddle.net/tS2cV/
不确定要在何处声明_info1,但似乎只希望它保留所选的div。您的每个函数(如下)将遍历并捕获所有已选择的div,因此您不必事先手动将任何内容推入其中。
我所做的只是在stop函数内部声明了_info -我确定您正在处理要发送的字符串,因此为简单起见我将其删除:
$(function () {
$("#day").bind("mousedown", function (event) {
return event.metaKey = true;
}).selectable({
stop: function () {
var _info1 = [];
$(".ui-selected", this).each(function () {
var id = this.id;
_info1.push(id);
});
alert(_info1);
}
});});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句