【发布时间】:2013-06-04 08:40:51
【问题描述】:
我使用小部件工厂创建了一个名为“Picklist”的 jQueryUI 小部件。它工作得很好。但是,因为它是一个小部件,所以它不会响应 val() 方法。
我有一个函数循环遍历数组以将数据分配给 Web 控件。在大多数情况下,我可以只使用 jQuery 方法 val() 来分配值。但这不适用于我的小部件。
我必须手动检查控件上是否存在小部件,然后调用小部件版本的 val() 来执行分配。这似乎非常低效,与良好的面向对象设计背道而驰。
for (var i = 0; i < ControlData.length; i++)
{
var mapping = ControlData[i];
$('#' + mapping.controlName).val(mapping.value);
if ($('#' + mapping.controlName).data('Erik-Picklist'))
{
$('#' + mapping.controlName).Picklist("option", { val: mapping.value });
}
}
有没有办法让 val() 映射到某个元素上的小部件方法?我在想可能有一种方法可以调用元素,将 val() 方法映射到 Picklist 的 val() 方法,但我还没有看到任何此类示例。
【问题讨论】:
标签: jquery jquery-ui oop jquery-ui-widget-factory