JQuery valHooks:按属性选择?

时间:2015-07-02 23:23:31

标签: jquery jquery-select2

JQuery Valhooks的适用性有限,或者文档记录很差。

我通过在select2元素上设置类型值来使用valhooks(select2是处理选择列表的一种奇特方式):

$("#mySelect").select2();
$("#mySelect").select2('container')[0].type='select2Marker';

$.valHooks['select2Marker'] = {
    get: function (el) {
        alert("hello there");
    },
}

问题是如果我在select2列表中触发更改,则type属性将被清除。

$("#mySelect").select2().trigger("change");

我想我可以通过在我的select标签上放置一个特殊的类甚至自定义的“data-select2type”属性来解决这个问题,但我无法弄清楚如何定义valhooks以通过属性或类进行选择。例如,

$.valHooks[".my-class"] = {...}
当我尝试将“my-class”类添加到我的选择列表时,

不起作用。这可能吗? valHooks可以连接到节点的不同方式有哪些?

1 个答案:

答案 0 :(得分:0)

valHooks只能附加到输入类型或节点名称。由于自定义类型不会粘贴在非输入元素上,因此请将钩子附加到节点名称。然后测试它是否具有您想要自定义的类。

$.valHooks['div'] = {
    get: function(el) {
        if ($(el).hasClass("myClass"))
            alert("hello there");
            return ...;
        },
    set: ...
};