JQuery valHooks:select 按属性?

JQuery valHooks: select by attribute?

JQuery Valhook 的适用性有限,或者文档非常少。

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

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

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

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

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

我想我可以通过在我的 select 标签上放置一个特殊的 class 甚至自定义 "data-select2type" 属性来解决这个问题,但我不知道如何定义 valhooks select 按属性或 class。例如,

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

不起作用。这可能吗? valHooks 可以通过哪些不同的方式附加到节点?

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

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