代码之家  ›  专栏  ›  技术社区  ›  erikkallen

删除元素时JQuery保留可拖动性

  •  1
  • erikkallen  · 技术社区  · 17 年前

    3 回复  |  直到 17 年前
        1
  •  2
  •   erikkallen    17 年前

    解决方案不是使用jQuery来移动元素,而是使用纯DOM。

    也就是说,而不是

    $('#elem').remove().appendTo($('#elem2'))
    

    做

    var q = $('#elem'); var el = q.get(0); el.parentNode.removeChild(el); $('#elem2').appendChild(el);
    

        2
  •  0
  •   TheVillageIdiot    17 年前

    在DOM中移动后,为什么不尝试再次创建可拖动行为:

    function xyz(){
        //move your stuff
        //create the draggable again
    
        $(element).draggable();
    }
    
        3
  •  0
  •   razzed    17 年前

    不,在替换/删除DOM中的元素时,不可能保留可拖动性,除非修改jquery核心(我不建议这样做)

    做 replaceWith() 和 remove() 对于DOM元素,意味着它们被销毁,因此与它们相关的任何行为或事件也被销毁。

    <div> 它包含可拖动的行为,并替换 div 当您想在放置时更改可拖动项目时,等等。

    或者(不那么优雅)你可以打电话 draggable() 在你完成任务后,再次讨论你的元素 替换为() 要恢复使用删除的行为,请执行以下操作: 替换为() .

    删除() 尝试 hide()

    简而言之:您处理问题的方式不正确。改变你的方法。