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可以连接到节点的不同方式有哪些?
答案 0 :(得分:0)
valHooks只能附加到输入类型或节点名称。由于自定义类型不会粘贴在非输入元素上,因此请将钩子附加到节点名称。然后测试它是否具有您想要自定义的类。
$.valHooks['div'] = {
get: function(el) {
if ($(el).hasClass("myClass"))
alert("hello there");
return ...;
},
set: ...
};