我使用ddSlick将我的下拉菜单更改为更漂亮的菜单;
http://designwithpc.com/Plugins/ddSlick
但我有一个问题。我依赖于以编程方式更改列表中的选定项目,但我必须按值而不是索引来完成。所以这是通过索引选择列表项的代码;
$('#demoSetSelected').ddslick('select', {index: 1 });
我似乎无法在文档中找到任何方法,认为可能有人遇到并解决了这个问题。或者,如果知道另一个插件与ddSlick做同样的工作?
答案 0 :(得分:1)
我有这个问题,而且解决方法很难看 - 基本上,我必须遍历ddslick所持有的所有项目,匹配值,并从那里获取索引。我想我得到了their demo page的来源,以帮助我理解示例3和4.我使用示例3来帮助我理解如何查看其所有数据,因此我可以遍历项目,找到匹配的值,并抓住它的索引。然后示例4让我设置下拉项。对不起,我找不到我测试过的文件。
DdSlick看起来不错,但最后我和MsDropDown一起去了。我发现它更强大 - 它有助于它有一个SetIndexByValue函数。他们在github网站以及他们的演示网站上都有详细的文档。
答案 1 :(得分:1)
以编程方式选择ddslick下拉列表非常简单。
在您的json数据中选择Pass:true,您需要选择
var ddData = [
{
text: "Facebook",
value: 1,
selected: false,
description: "Description with Facebook",
imageSrc: "http://dl.dropbox.com/u/40036711/Images/facebook-icon-32.png"
},
{
text: "Twitter",
value: 2,
selected: true,
description: "Description with Twitter",
imageSrc: "http://dl.dropbox.com/u/40036711/Images/twitter-icon-32.png"
}
];
我希望您理解这一点,即您创建json数据的位置只是将条件(如果数据库中的id与您为插件创建的数据中的id匹配的那样)选中:true else else selected:假 上面的代码将默认选择twitter。
希望这是有道理的。
答案 2 :(得分:1)
我在Github中看到了这个选项:
$('#myDropdown li:has(.dd-option-text:contains("MyValue"))').index();
或者如果文本不等于值:
$('#myDropdown li:has(input[value="MyValue"])').index();
答案 3 :(得分:1)
丑陋但有效:
var s = 0;
var ind;
$('#your_select .dd-option-value').each(function(i) {
if ($(this).val() == your_value_to_test) {
ind = s;
return false;
}
s++;
});
$('#your_select').ddslick('select', {index: ind });
答案 4 :(得分:0)
您还可以在格式化下拉列表之前强制选择所选项 在调用.ddslick()之前,只需在你的选择中选择一个像这样的选项
$("#demoSetSelected option[value='YOURVALUE']").attr('selected', 'selected');
然后:
$("#demoSetSelected").dsslick();