我正在使用“选择的插件”,但不确定如何将属性添加到选择列表的选项标签中。
我已经在准备好的文档上使用 jQuery 进行了尝试,但没有运气。
您需要将 Chosen.Jquery.js 修改为以下内容以使其工作
使用选择 1.0 版本
第62行添加这行代码
this.parsed.push({
array_index: this.parsed.length,
options_index: this.options_index,
value: option.value,
text: option.text,
html: option.innerHTML,
title: option.title, // this is Line 62 add this line
selected: option.selected,
disabled: group_disabled === true ? group_disabled : option.disabled,
group_array_index: group_position,
classes: option.className,
style: option.style.cssText
});
修改第 255 行
return "<li title=\"" + option.title +"\" class=\"" + (classes.join(' ')) + "\"" + style + " data-option-array-index=\"" + option.array_index + "\">" + option.search_text + "</li>";
I have tried this..but no luck
这取决于你尝试了什么。试试这个函数,用你希望它选择的对应物继承标题的选择元素调用它
function cloneTitles(selectBox) {
//make sure it has already been chosen-ised
selectBox = $(selectBox).chosen();
//get all the original options, should be in same order as chosen ones
var origOpts = selectBox.find('option');
//get all the chosen-created 'options'
//NB there may be a better way to grab the chosen created element
var chznOpts = selectBox.next().find('.active-result')
//foreach option
origOpts.each(function(index, origOpt) {
//copy the attribute from the original
$(chznOpts[index]).attr('title', $(origOpt).attr('title'));
});
}
I have tried this on document ready
您的问题可能是您在 selected.js 转换您的选择框之前所做的任何尝试,但此功能应该可以缓解这种情况。
此外,如果您需要多个选择框,只需使用.each()
(例如selectArray.each(function(i, select) { cloneTitles(select); })
我假设您使用的是 jQuery 而不是 Prototype(给定您的最后一行)
所以如果您愿意,您可以传入 '#id' 而不是 <DOMObj> 。
可以修改代码以克隆给定属性,而不是'title'
,甚至是给定属性的数组!
使用选择的 1.1 版本
html: option.innerHTML, // Search
title: option.title, // Add
.
option_el.innerHTML = option.search_text; // Search
option_el.title = option.title; // Add