我试图变得非常简洁,并使用以下 javascript 代码来侦听自定义触发事件:
var concat = "";
$("body")
.unbind("__evt_selgrps_ok")
.bind("__evt_selgrps_ok", function(event, param) {
$(param).each( function() {
concat += $(this).attr("data-field-id");
});
});
使用以下代码触发事件:
$("body")
.trigger('__evt_selgrps_ok',
[$("#<%=DialogID%>").find(":input:checked")]);
简单地说,上面获取了当前检查的 Checkbox 类型的所有输入字段,并将元素数组作为参数传递给绑定的处理程序(根据此问题中的第一个代码示例)。
功能上,这段代码运行良好。我只是觉得有很多代码可以做一些比较简单的事情,那就是将所有选中的复选框的“data-field-id”属性值作为参数传递给触发器。
理想情况下,传递给触发器处理程序的值的简单 json 数组会好得多。触发器处理程序实际上不必知道输入元素,因为它只想接收属性值数组。
我想,我的问题的底线是,您如何要求 JQuery 使用某个选择器为您提供所有指定属性的数组。
我只对一个非常简洁的解决方案感兴趣,最好不涉及使用“每个”功能。
谢谢!SR