我遇到了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有点业余。
答案 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];
这样,就我解释你的问题而言,整个作为一个按钮。