如何在select2选项上启用悬停事件

时间:2013-11-25 07:37:19

标签: jquery tags

我正在使用select2。内置事件不支持选择项目上的悬停事件,因此当鼠标悬停在项目上时,我正尝试触发悬停事件(多个选择)。

function tagFormat(state) {
    return '<span class="tagElement">' + state.text + '</span>';
}
$('.tagElement').hover(function(event){
    alert('something');
});
var sampleTags = ['red','white'];
$("[taggable]").select2({
    formatSelection: tagFormat,
    maximumInputLength: 10,
    tags:sampleTags,
    tokenSeparators: [",", " "]
});

Bootply在http://bootply.com/96527,您可以看到在select2之外的悬停事件确实会触发,但是在select2中它没有。里面的机制是什么?

1 个答案:

答案 0 :(得分:1)

select2.js有一个函数.show,它更新了属性&#34; aria-describedby&#34;无论何时将鼠标悬停在选项上。这个功能可以扩展......

jsfiddle example

c.prototype.show = function() {
    var b = a.Event("show.bs." + this.type);
    this.$element.trigger(b);
    var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);
    if (b.isDefaultPrevented() || !d) return;
    var e = this,
        f = this.tip(),
        g = this.getUID(this.type);
    /*look for the select box and find the 'onmouseover' attribute */
    var s = this.$element.siblings('select');

    if (s != undefined && s.attr('onmouseover') != undefined) {
        var m = s.attr('onmouseover');
        eval(m);
   }
   ...
}