JQuery:如何使用FancySelect插件强制选择选项?

时间:2013-12-09 15:38:50

标签: javascript jquery jquery-plugins

我有一个直接的问题:如何使用FancySelect插件“选择”一个选项?

这是情况:我有一个带有两个选项和两个链接的选择。链接应与select同步。这意味着当点击链接时,它必须使“选中”成为选择的选项。

无论如何,重要的是它不是正常选择,但我使用的是名为 FancySelect 的JQuery插件:http://code.octopuscreative.com/fancyselect/ 这可能是StackOverflow其他地方找到的普通解决方案不适用于我的具体情况的主要原因。 所以重点不是如何使“选择”成为选择的选项,而是如何在使用FancySelect插件时使其“选中”。

在这里你可以更好地理解:

http://jsbin.com/AqoYucAG/11/edit

这是我尝试使用的代码,但尚未使用:

$( "#a1" ).click(function() {

     $("#selector option:first").attr('selected','selected');
 });

你能告诉我,我如何强制选择一个选项“被选中”? 非常感谢你!

2 个答案:

答案 0 :(得分:6)

好像你正在使用select插件。因此,通常他们将底层select转换为div / span等,以获得良好的外观和感觉。因此,当您更改选择选项时,您需要通知插件说您已更新它。在这种情况下,您似乎可以触发change/update事件来执行此操作。当您向select中动态添加选项时,您需要执行相同的操作(触发update),以便插件得到更新。

所以试试:

$( "#a1" ).click(function(e) {
   e.preventDefault();
   $("#selector").val("1").trigger('change');
});

根据如下所示的插件代码,它会在触发更改时更新文本。

sel.on('change', function(e) {
    if (e.originalEvent && e.originalEvent.isTrusted) {
      return e.stopPropagation();
    } else {
      return updateTriggerText();
    }
  });

答案 1 :(得分:2)

最简单的方法是,您不需要任何选项标记

 $("#selector").val("myVal");