我有一个动态页面,我在其中根据一些DataBase配置创建了一些元素(HTML输入)。
比方说,我的初始HTML页面可能没有控件(除了Masterpage之外),按下按钮后就会创建它们,例如。
添加这些控件后,使用div并使用.append
,我需要在新创建的某些SELECT元素上使用Widget(如jQuery UI Multiple Select Widget中所示)。
事情是,这是行不通的。
我也做了这个测试:
$(document).ready
功能上启动小部件,它就会启动并且可以多选。请你帮助我吗?这是因为某些DOM的事吗?以下是此“引擎”的摘录:http://jsfiddle.net/SWyw9/
答案 0 :(得分:2)
回答太迟了,但我认为这个答案可能有助于未来的设计师/开发人员。 我们知道jquery中有一个delegate()函数可以将事件处理程序绑定到动态添加的元素。
我觉得这个delegate()函数可以在你的情况下使用 请查看以下代码段。
// Here you are using delegate to attach mouse over event handler to the existing elements as well as elements which will be added dynamically in future.
$('#myContainer').delegate('.myDraggableClass', 'mouseenter', function() {
var $this = $(this);
// Checking whether or not the widget is applied to the element.
if(!$this.is(':data(draggable)')) {
// As widget is not applied, applying it.
$this.draggable({ /* configure draggable here */ });
}
});
从下面给出的链接复制代码段。 查看更多详细信息: http://enterprisejquery.com/2010/07/configuring-ui-widgets-and-interactions-with-live/
答案 1 :(得分:1)
我不确定你在问什么。
这似乎是一个具有约束力的问题。您不能将事件绑定到不存在的元素(动态元素),除非您使用已折旧的bind()或新的“on”。
$("#body-id").on("click", ".widget-button", function(event){
//do something
});
这会将按钮单击附加到body标签,其id为body-id。然后,身体会监听未来的小部件按钮点击,因为当动态小部件没有时,正文就会存在。
不确定这是不是你要问的。
好吧,我把你的小提琴分成了这个: http://jsfiddle.net/TheFiddler/USHc5/4/
这就是你追求的目标吗?
1)创建一个类型数组 2)将其传递给BuildHTML 3)拆分道具 4)每个开关盒 5)渲染新的HTML