你可以在不使用选择器的情况下创建jQuery UI小部件吗?

时间:2012-06-07 13:38:00

标签: javascript jquery jquery-ui

我正在编写我的第一个jquery UI小部件:一个由两个文本框(开始和结束日期)组成的日期范围控件,两个文本框都将使用jQuery UI DatePicker。

我在网上看到的所有小部件代码示例都让您将小部件行为应用于通用选择器。在我的情况下,我需要在我的选择器中恰好有两个元素(前面提到的两个文本框),并且每个元素都应用不同的逻辑。例如,开始日期文本框将具有与结束日期文本框不同的onblur事件/行为。

有没有办法在没有选择器的情况下创建窗口小部件,而是有两个命名的构造函数参数,一个用于开始日期,另一个用于结束日期?如果没有,是否有更好的方法来接近这个小部件?也许我应该创建一个POJSO(普通的旧JS对象)呢?

1 个答案:

答案 0 :(得分:1)

选择器的重要性是什么?窗口小部件使用选择器,因为它大部分时间都适用于所选元素。但它取决于小部件使用所选元素。从技术上讲,它可以忽略它们并继续处理任何事情。那么为什么不选择文档(或者像文本框的父容器一样),并将一个对象作为参数传递给你的小部件,其值为" textbox1"和" textbox2"然后在初始化时获取这些值。这有意义吗?

例如:

$("#parent_container").yourWidget({
    txtbox1: $("#txt_id1"),
    txtbox2: $("#txt_id2"),
    otherParam: true
});

并在您的窗口小部件代码中,忽略所选元素。根据参数值处理所有内容。