无法在Select2下拉列表中向选项添加事件点击

时间:2015-08-05 15:23:09

标签: javascript jquery html css

我遇到了Select2下拉列表的问题,这导致我无法将外部网站的链接添加到下拉列表中的选项。

我一直在关注几个指南,但大多数都已过时,因为显然Select2的活动已经更新。

我一直在尝试实现以下JS / JQ,但是我不确定我是否将它放在正确的位置,或者即使它是正确的。

这样做的目的是将链接按钮添加到每个选项/元素的末尾,这将使用户进入外部站点。我更喜欢整个焦点/悬停区域是一个链接按钮,但是看起来这对Select2来说是不可能的吗?

function format(state) {
if (!state.id) return state.text; // optgroup
return state.text + " <i class='info'>link</i>";
}

var select2 = $("#select").select2({
formatResult: format,
formatSelection: format,
escapeMarkup: function(m) { return m; }
}).data('select2');

select2.onSelect = (function(fn) {
return function(data, options) {
    var target;

    if (options != null) {
        target = $(options.target);
    }

    if (target && target.hasClass('info')) {
        alert('click!');
    } else {
        return fn.apply(this, arguments);
    }
}
})(select2.onSelect);

不幸的是,它无法正常工作和/或忽略所有其他脚本。

非常感谢任何帮助!不用担心,我对JS有点业余。

https://jsfiddle.net/dowenrockit/y3yoh1ao/

1 个答案:

答案 0 :(得分:0)

老实说,我不太确定你想要完成什么,而且jsfiddle是疯了。

这是一个更新的,包括jQuery和Select2,以及你的一些CSS。我删除了大部分不需要的代码。以及所有的javascript。

https://jsfiddle.net/y3yoh1ao/4/

这个小提琴还包括select元素的基本用法,它允许用户选择一个元素,并以编程方式对其执行某些操作。

如果您希望用户在用户点击元素时访问网站,您只需将链接设置为选项的值,然后设置为window.location.href = value。它将用户发送到该页面。

离。 window.location.href = "http://google.com"

或者您可以解释该选项的值,并从数组或其他内容中获取链接。

var myLinks["CA"] = "http://facebook.com" window.location.href = myLinks[value];

这样,就我解释你的问题而言,整个作为一个按钮。

相关问题