Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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-droppable函数仅适用于contains选择器的最后一个元素_Jquery_Jquery Ui_Jsf 1.2 - Fatal编程技术网

JQuery-droppable函数仅适用于contains选择器的最后一个元素

JQuery-droppable函数仅适用于contains选择器的最后一个元素,jquery,jquery-ui,jsf-1.2,Jquery,Jquery Ui,Jsf 1.2,我在使用属性包含选择器和可拖放基础时遇到问题。 我正在搜索id包含字符串“dropAble”的div元素 我希望每个元素都能对丢弃事件做出反应。我必须这样做,因为我使用的是JSF,因为它替换了div的初始id,所以我必须搜索这个子字符串 drop事件声明如下: function handleDropEvent( event, ui ) { var draggable = ui.draggable; alert( 'The square with ID "' + draggable

我在使用属性包含选择器和可拖放基础时遇到问题。 我正在搜索id包含字符串“dropAble”的div元素

我希望每个元素都能对丢弃事件做出反应。我必须这样做,因为我使用的是JSF,因为它替换了div的初始id,所以我必须搜索这个子字符串

drop事件声明如下:

function handleDropEvent( event, ui ) {
    var draggable = ui.draggable;
    alert( 'The square with ID "' + draggable.attr('id') + '" was dropped onto me!' );
    alert( this );
}
<t:dataList value="#{bean.list}" var="elem">
<t:htmlTag value="li" styleClass="folder">
<t:div id="dropAble">
    ...
<:/div>
<t:htmlTag>
<t:dataTable ...>
<t:column ...>
<h:outputText value="#{dok.text}&nbsp;" escape="false"  />
<t:div forceId="true" id="dragAble">
    Drag
</t:div>
</t:column>
</t:dataTable>
首先,并不是所有这些元素都会对drop事件做出反应,只有前两个。此外,“this”始终是最后一个元素,因此它似乎改写了其他定义

dropelement的html部分如下所示:

function handleDropEvent( event, ui ) {
    var draggable = ui.draggable;
    alert( 'The square with ID "' + draggable.attr('id') + '" was dropped onto me!' );
    alert( this );
}
<t:dataList value="#{bean.list}" var="elem">
<t:htmlTag value="li" styleClass="folder">
<t:div id="dropAble">
    ...
<:/div>
<t:htmlTag>
<t:dataTable ...>
<t:column ...>
<h:outputText value="#{dok.text}&nbsp;" escape="false"  />
<t:div forceId="true" id="dragAble">
    Drag
</t:div>
</t:column>
</t:dataTable>

...
drag元素的html部分如下所示:

function handleDropEvent( event, ui ) {
    var draggable = ui.draggable;
    alert( 'The square with ID "' + draggable.attr('id') + '" was dropped onto me!' );
    alert( this );
}
<t:dataList value="#{bean.list}" var="elem">
<t:htmlTag value="li" styleClass="folder">
<t:div id="dropAble">
    ...
<:/div>
<t:htmlTag>
<t:dataTable ...>
<t:column ...>
<h:outputText value="#{dok.text}&nbsp;" escape="false"  />
<t:div forceId="true" id="dragAble">
    Drag
</t:div>
</t:column>
</t:dataTable>

拖曳
我希望能够确定移动了哪个拖动对象(这很好),并确定将拖动的项目放置在何处(这似乎总是最后一个元素)。 由于init函数中的draggable()调用有效,我不明白为什么它不使用dropable函数

还有别的办法吗?我做错了什么

谢谢你的建议

看这里:还有这里 您在
拖放处理程序中做的一切都是正确的。从
drop
handler上的jQuery UI文档:

当一个已接受的可拖动文件被丢弃“over”时,会触发此事件 (在公差范围内)该可升降装置。在回调中,
$(this)
表示可拖放对象的可拖放对象<代码>ui.draggable
表示可拖动的


改用类<然后在js中:
$(“.draggable”).draggable()$(“.droppable”).droppable()
。如果使用类,如何确定将哪个元素拖到哪个元素,以及将它拖到哪个元素?他们看起来不一样吗?我接受这个答案。实际上没有什么问题,除了我的dragable div的宽度。我认为这取决于coursor的位置,Dragn drop事件是在哪里触发的。但这实际上取决于元素本身的位置。谢谢你的建议