Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建并添加到可排序连接列表的JQuery元素不可选择,无法将事件应用于_Jquery_Draggable_Jquery Ui Sortable_Droppable - Fatal编程技术网

创建并添加到可排序连接列表的JQuery元素不可选择,无法将事件应用于

创建并添加到可排序连接列表的JQuery元素不可选择,无法将事件应用于,jquery,draggable,jquery-ui-sortable,droppable,Jquery,Draggable,Jquery Ui Sortable,Droppable,我不确定我是否走对了这条路,但这就是我的结局。 我在页面左侧有一个主列表,其中包含可以放置在多个可放置div框中的列表项,在可放置div框内有一个可排序并连接到页面上所有其他ul的ul,因此,一旦从主列表中删除某个项目,就可以将其拖放到其他uls中,以便修改其在连接的uls中的位置 我遇到的问题是,当从主列表中删除时,新创建的li无法通过jquery选择器进行选择,并且无法以预期的方式应用事件。我可以使用新项的id应用事件,但如果您愿意,它将失去属于事件组的能力,也就是说,上下文菜单不会隐藏,因

我不确定我是否走对了这条路,但这就是我的结局。 我在页面左侧有一个主列表,其中包含可以放置在多个可放置div框中的列表项,在可放置div框内有一个可排序并连接到页面上所有其他ul的ul,因此,一旦从主列表中删除某个项目,就可以将其拖放到其他uls中,以便修改其在连接的uls中的位置

我遇到的问题是,当从主列表中删除时,新创建的li无法通过jquery选择器进行选择,并且无法以预期的方式应用事件。我可以使用新项的id应用事件,但如果您愿意,它将失去属于事件组的能力,也就是说,上下文菜单不会隐藏,因为它是为每个元素而不是一组元素创建的

我在这里创建了一个提琴页面,演示了简化的设置和问题

我认为这可能是jquery的错误或异常

删除ul.sortable代码允许使用jquery将新动态创建的li作为一个组进行选择


我被难住了。任何帮助都将不胜感激:)

您的选择器错误。而不是使用这个:

$('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');然后重新应用菜单就可以了,它不像绑定新创建的控件那样有效,因为它先解除所有控件的绑定,然后再重新绑定所有控件,但是我不认为有任何其他方式可以使用插件编写的方式,因为没有引用可以访问绑定的初始菜单。干杯:)小提琴回答: