【问题标题】:JQuery drag and drop stops working on certain objects?JQuery拖放停止在某些对象上工作?
【发布时间】:2009-05-23 15:46:46
【问题描述】:

我已经成功地使用这个 Jquery 使元素(如 div、panel 等)可拖动:

<script type="text/javascript">
      $(function() {
          $(".drag").draggable({ revert: true });
      });
</script>

这适用于在 page_load 完成之前和任何回发发生之前页面上已经存在的任何内容。我有一系列按钮(带有“.catbuttons”类),单击时会调用我的数据库并检索一些图像网址。一旦我检索到这组 url,我会执行一个 for/next 循环并创建一大堆图像对象并将它们放入面板中。每个图像都具有“.drag”的 cssclass 以使其与上面的 JQuery 一起使用。

问题是,他们不再拖了!我在这里阅读了另一篇关于在回发(甚至是部分回发?)后需要重新绑定 javascript 内容的文章,这将允许全新的控件将上述 Jquery 代码附加到它们,从而使它们可拖动。经过一些谷歌搜索,我遇到了这个并进行了测试:

<script type="text/javascript">
        $(".catbuttons").live("click", function(){
            $(".drag").draggable({ revert: true });
        });
 </script>

我尝试将其与原始脚本一起留在我的 aspx 页面的页眉部分,并且将其全部放在此处。两种方式都没有骰子。

想法?

【问题讨论】:

    标签: javascript jquery drag-and-drop postback


    【解决方案1】:

    上面的函数实际上期望用户点击,再次调用draggable。相反,您需要在回发后执行此操作。 这里的规则应该是,在将图像放置在页面上之后,注册所有具有可拖动功能的图像。

    编辑: 在您的情况下,单击按钮只会触发获取图像的功能。这些图像应该放在页面上,然后再将它们设为可拖动。您可以在您放置的语句之后立即使用可拖动对象注册创建的对象,并在运行时将“.drag”cssclass 应用于这些对象/图像。

    【讨论】:

    • 按钮的实际点击功能是在运行时生成图像的原因 - 我应该有不同的地方吗?在我单击一个按钮之前,没有任何图像存在,并且我在运行时动态地将“.drag”cssclass 应用于创建的对象。我是不是走错路了?
    • 这种方式没有错。见编辑。我希望我能正确理解你的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    相关资源
    最近更新 更多