创建并添加到可排序连接列表的JQuery元素不可选择,无法将事件应用于
我不确定我是否走对了这条路,但这就是我的结局。 我在页面左侧有一个主列表,其中包含可以放置在多个可放置div框中的列表项,在可放置div框内有一个可排序并连接到页面上所有其他ul的ul,因此,一旦从主列表中删除某个项目,就可以将其拖放到其他uls中,以便修改其在连接的uls中的位置 我遇到的问题是,当从主列表中删除时,新创建的li无法通过jquery选择器进行选择,并且无法以预期的方式应用事件。我可以使用新项的id应用事件,但如果您愿意,它将失去属于事件组的能力,也就是说,上下文菜单不会隐藏,因为它是为每个元素而不是一组元素创建的 我在这里创建了一个提琴页面,演示了简化的设置和问题 我认为这可能是jquery的错误或异常 删除ul.sortable代码允许使用jquery将新动态创建的li作为一个组进行选择创建并添加到可排序连接列表的JQuery元素不可选择,无法将事件应用于,jquery,draggable,jquery-ui-sortable,droppable,Jquery,Draggable,Jquery Ui Sortable,Droppable,我不确定我是否走对了这条路,但这就是我的结局。 我在页面左侧有一个主列表,其中包含可以放置在多个可放置div框中的列表项,在可放置div框内有一个可排序并连接到页面上所有其他ul的ul,因此,一旦从主列表中删除某个项目,就可以将其拖放到其他uls中,以便修改其在连接的uls中的位置 我遇到的问题是,当从主列表中删除时,新创建的li无法通过jquery选择器进行选择,并且无法以预期的方式应用事件。我可以使用新项的id应用事件,但如果您愿意,它将失去属于事件组的能力,也就是说,上下文菜单不会隐藏,因
我被难住了。任何帮助都将不胜感激:)您的选择器错误。而不是使用这个:
$('ul[class=listItem_drop] li').dblclick( function ()
使用以下命令:
$('ul.listItem_drop li').dblclick( function ()
这里的区别在于,您的第一个选择器正在查找一个具有class属性的确切值的元素,而没有其他类。测试类的一种更为常见的方法是.classname
选择器
但你会问,还有什么课?当您使用jQueryUI时,它会添加一些类来跟踪一些内部内容。这在检查员身上很明显:
(已更新。)您的选择器错误。而不是使用这个:
$('ul[class=listItem_drop] li').dblclick( function ()
使用以下命令:
$('ul.listItem_drop li').dblclick( function ()
这里的区别在于,您的第一个选择器正在查找一个具有class属性的确切值的元素,而没有其他类。测试类的一种更为常见的方法是.classname
选择器
但你会问,还有什么课?当您使用jQueryUI时,它会添加一些类来跟踪一些内部内容。这在检查员身上很明显:
(更新)谢谢你的非凡魅力!:)还有一个快速的问题,当重新应用事件时,dblclick事件现在为原始元素触发两次,您将如何删除原始事件并重新应用它们,以便它们只触发一次?再次感谢!你通常会这样做,但为什么当事情被拖来拖去的时候,我不会再应用它。或者,如果您真的只希望在发生拖动后应用事件,则不要在开始时追加事件,或者使用类似于而不是
.dblclick
true的内容。对于双击事件,您可以只使用id,我只是将其用作一个简化的示例。但是有一个上下文菜单可以作为一个组应用于项目。将上下文菜单重新应用于组会创建该组的另一个实例$('ul.listItem_drop li').contextMenu(menu_listItem_drop,{主题:'vista'});我可以使用bind将新项添加到当前上下文菜单中吗?我在这里添加了一个新的上下文菜单问题:(请忽略顶部的上下文菜单javascript。)使用$('ul.listItem_drop li')。解除绑定('contextMenu');然后重新应用菜单就可以了,它不像绑定新创建的控件那样有效,因为它先解除所有控件的绑定,然后再重新绑定所有控件,但是我不认为有任何其他方式可以使用插件编写的方式,因为没有引用可以访问绑定的初始菜单。干杯:)小提琴回答:谢谢你的威严!:)还有一个快速的问题,当重新应用事件时,dblclick事件现在为原始元素触发两次,您将如何删除原始事件并重新应用它们,以便它们只触发一次?再次感谢!你通常会这样做,但为什么当事情被拖来拖去的时候,我不会再应用它。或者,如果您真的只希望在发生拖动后应用事件,则不要在开始时追加事件,或者使用类似于而不是.dblclick
true的内容。对于双击事件,您可以只使用id,我只是将其用作一个简化的示例。但是有一个上下文菜单可以作为一个组应用于项目。将上下文菜单重新应用于组会创建该组的另一个实例$('ul.listItem_drop li').contextMenu(menu_listItem_drop,{主题:'vista'});我可以使用bind将新项添加到当前上下文菜单中吗?我在这里添加了一个新的上下文菜单问题:(请忽略顶部的上下文菜单javascript。)使用$('ul.listItem_drop li')。解除绑定('contextMenu');然后重新应用菜单就可以了,它不像绑定新创建的控件那样有效,因为它先解除所有控件的绑定,然后再重新绑定所有控件,但是我不认为有任何其他方式可以使用插件编写的方式,因为没有引用可以访问绑定的初始菜单。干杯:)小提琴回答: