寫了一個函數,該函數創建一個可從namevalue集合中選擇的函數。我是Jquery和Javascript的新手,所以有一些微調的空間。
function NameValue(name, value) {
this.name = name;
this.value = value;
}
function createRangeSelectable(elementName, nameValueCollection, functionReference) {
var newElementId = "selectable" + elementName;
var orderedListHTML = "<ol id='" + newElementId + "' class='selectable'>";
var itemHTML = "";
for (x in nameValueCollection) {
var item = nameValueCollection[x];
itemHTML = itemHTML + "<li class='ui-state-default'>" + item.name + "<input type='hidden' value='" + item.value + "'/></li>";
}
orderedListHTML = orderedListHTML + itemHTML + "</ol>"
$("#" + elementName).html(orderedListHTML);
$("#" + newElementId).bind("mousedown", function (e) {
e.metaKey = false;
}).selectable({
stop: function() {
var first = -1;
var last = -1;
$(".ui-selected", this).each(function() {
var index = $("li", this.parentElement).index(this);
if (first == -1)
first = index
last = index
});
var firstListItemValue;
var lastListItemValue;
$("li", this).each(function() {
var index = $("li", this.parentElement).index(this);
if (index == first) {
firstListItemValue = $(this).children('input').val();
}
if (index == last)
lastListItemValue = $(this).children('input').val();
if (index > first && index < last)
if (!$(this).hasClass("ui-selected"))
$(this).addClass("ui-selected");
});
functionReference(firstListItemValue, lastListItemValue);
}
});
//Usage
createRangeSelectable("YourDivId", NameValueArray, function(startValue, endValue){
});
你能告訴我們一個演示頁面嗎?因爲,對我而言,描述發生的事情有點模糊。 – WTK
我將嘗試在某個時間放置頁面。總之,我想單擊並拖動可選列表,如範圍選擇器。現有的功能工作正常,如果你有一個單行但有多行(矩陣)存在問題 –