【问题标题】:Modfying DOM elements involved in a jQuery function修改 jQuery 函数中涉及的 DOM 元素
【发布时间】:2011-07-10 10:23:08
【问题描述】:

具体来说,使用 jQuery 进行拖放。

                        $(".note").droppable({
                            drop: function () {

                            }
                        });

如何获取 DOM 元素:

1) 是否被拖/放?

2) 被扔到上面了吗?

跟进问题:有什么建议可以让我自己回答这个问题吗?

【问题讨论】:

  • 关于可拖放插件和 jQuery 的一般说明,是的。 Web 开发现在对我来说有点吓人,因为我已经摆脱了多年的应用程序。

标签: jquery drag-and-drop


【解决方案1】:

如果您将可拖动对象的drop 事件与接受两个参数eventui 的函数挂钩,那么this 是拖放对象的原始DOM 元素,而@987654327 @ 是可拖动的。

来自the docs on the drop event

当接受的可拖动对象被放置在此可放置对象的“上方”(在其容差范围内)时,将触发此事件。在回调中,$(this) 表示可拖放的可拖放对象。 ui.draggable 代表可拖动。

他们说droppable 是$(this),但那是因为他们假设你想要一个包裹它的jQuery 实例。 this 将是原始 DOM 元素。

例如:

$("your selector here").droppable({
    drop: function(event, ui) {
        // this = raw DOM element of droppable
        // $(this) = creates jQuery wrapper around the DOM element
        // `ui.draggable` = draggable

        // Let's make the draggable red, and the droppable blue:
        ui.draggable.css("color", "red");
        $(this).css("color", "blue");
    }
});

Here's a live copy 上面的例子之一。

【讨论】:

  • 谢谢朋友。我仍然不太清楚为什么该函数的参数是 (event, ui),但这确实有效。我实际上在文档中阅读了这个,但无法让它工作,因为我没有在范围内定义 ui 并且不断收到 javascript 错误。
  • @Jeremy:参数是eventui,因为这是jQuery UI 库定义它们的方式。 :-) 这就是他们定义 API 的方式。 jQuery UI(不是 jQuery,jQuery UI)中几乎所有的“事件”样式回调都被赋予了这两个参数; ui 对象的内容取决于与事件相关的对象(可拖动、可放置、对话框、自动完成器等),但这些通常是它,并且会被记录在 - 有时巧妙地 - 在jQuery UI 文档。
猜你喜欢
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 2013-05-27
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多