gpt4 book ai didi

jquery - 为什么当我手动触发可排序事件时,UI 对象为 null?

转载 作者:行者123 更新时间:2023-12-01 05:01:15 24 4
gpt4 key购买 nike

我正在编写一个页面,我想在其中手动触发可排序的事件(即使用 .trigger() 方法),以便更新用户输入时需要绑定(bind)到表单的输入的名称和 ID进行的更改不会自动触发适当的可排序事件。我有两件事让我感到困惑,如果有人知道并且愿意花时间的话,我希望能更好地理解它们。

第一个困惑点:我遇到了一个问题,如果我在 .sortable() 方法中定义事件(而不是附加对 .bind() 的额外调用,则“手动”.trigger() 方法不会执行任何操作)。我发现很多帖子解释了解决方法,但我不清楚这是一个功能还是一个错误。

第二个困惑点:当我手动触发事件时,“ui”对象为空。定义事件正常触发的时间。在我的应用程序中,我能够使用选择器解决这个问题,因为无论如何我真正需要的是 ui.item。但我很高兴知道其他人是否遇到过这种情况,我是否做错了什么等等。

我设置了一个 jsFiddle 来演示两个混淆点: http://jsfiddle.net/nanzalone/TDWXs/

第一个由“receive”事件说明。如果将项目从可拖动项拖到可排序项,您将看到该事件正确触发。但是按下“接收”按钮(调用 .trigger())不会执行任何操作。

第二个由“删除”事件说明。现在事件触发了,因为我使用了 .bind(),但警报显示使用“删除”按钮触发事件会导致空 ui 对象,而将项目拖到垃圾箱中以触发删除会产生非-空 ui 对象。

提前感谢您的任何指点,并对我可能无意中犯下的任何失礼表示歉意(我对 jQuery 还很陌生)。

最佳答案

我认为 ui 是一个对象,可用于确定与 ui 无关的事物(例如掉落的项目)。
如果您以编程方式触发事件,则没有用户交互,因此没有 ui 对象。这是有道理的,它也是确定事件是否以编程方式触发的一种方法(对于正常事件,您可以以 this 方式执行此操作)
在您的示例中, ui 对象包含诸如接收对象的原始位置、实际位置等属性。

关于jquery - 为什么当我手动触发可排序事件时,UI 对象为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com