【发布时间】:2014-07-08 19:02:30
【问题描述】:
在我的应用程序中,我通过 websockets 接收数据,根据这些数据,我想将一些滑块附加到我的页面内容:. 它是我收到的对象数组,我想为每个对象创建具有最大值、最小值和当前值的相应滑块。此外,如果用户更改值,我希望每个滑块都有一个更改监听器,以便通过 websockets 发回值。
我已经偶然发现了这个 JQuery Mobile sliders inserted dynamically 。但是该解决方案似乎不合适,因为元素应该在运行时创建,而不是在第一次加载页面时创建。此外,我不知道如何以优雅的方式设置 onchange 监听器。
我最好使用 Jquery Mobile,因为我已经将它用于其他视觉元素,但如果不可能,我会感谢任何其他可能性。
编辑: 以及如何在我尝试过的 onchange 侦听器中引用数组的索引 ($(this).id()) 但这会抛出:“TypeError undefined is not a function”。
谢谢彼得。
【问题讨论】:
-
对于索引或 ID,您需要以某种方式将其包含在滑块中。一种方法是使用数据属性 (api.jquery.com/data/#data-html5)。这是一个更新的小提琴,它从数据属性存储和检索 id(您可以只存储索引):jsfiddle.net/ezanker/HuDb2/3
-
thx: 但是我怎样才能检索到对应 id 的数组元素呢?这是数据绑定最有效的方式吗?我真的从 android-native 切换过来,在那里我习惯于为 ui 绑定编写适配器。是否有 javascript 的等价物。
-
有类似knockout (knockoutjs.com) 的库用于绑定。对于这么简单的事情,您可以使用数组索引而不是 id:jsfiddle.net/ezanker/HuDb2/13。如果您使用 ID,您将迭代数组,直到找到匹配的对象。
标签: javascript jquery html jquery-mobile