jquery - DOM更新后使用draggable

标签 jquery jquery-ui jquery-ui-draggable

当前的 DOM 是这样的:

<div id="image_list">

</div>

事件结束后,这将更新为:

<div id="image_list">
   <img class="dragable-img" src="image1.png" />
   <img class="dragable-img" src="image2.png" />
   <img class="dragable-img" src="image3.png" />
   <img class="dragable-img" src="image4.png" />
 </div>

现在页面中有一个js应该处理拖动

$('.dragable-img').draggable({
        revert: true,
            handle: 'img',
            containment: "#content-body", 
            scroll: false
 }).disableSelection();

显然,在更新 DOM 之前它是有效的,而在更新 DOM 之后它就不起作用了。 那么,我在这里缺少什么

最佳答案

尝试使用ajaxComplete()函数 - 它将在页面上的每次 ajax 调用后触发

$('#image_list').ajaxComplete(function(){
    $('.dragable-img',this).draggable({
        revert: true,
        handle: 'img',
        containment: "#content-body", 
        scroll: false
    }).disableSelection();
)};

更好的方法是在 $.ajax success 函数中再次调用draggable

$.ajax({
    url:yoururl
    success: function(){
       //do what you need.. update/add to your dom 
       //then call draggable on your elements
       $('.dragable-img').draggable({
           revert: true,
           handle: 'img',
           containment: "#content-body", 
           scroll: false
       }).disableSelection();
    }
});

关于jquery - DOM更新后使用draggable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653549/

相关文章:

jquery - jQuery随机YouTube视频生成器[HELP]

javascript - 如何使用浏览器的滚动条滚动 iframe 的内容?

javascript - JQuery 用户界面 : Multiple sliders with different css for handles

javascript - JQueryUI Draggable "Object doesn' t 支持此属性或方法"当包含 jquery-ui 时

javascript - 可拖放列表

javascript - 即使放入错误的可放置对象,如何禁用可拖动对象

javascript - 我如何从 jquery 中的多个 div 中选择特定的 div

jquery - 在 html 中预填充 jQuery 数据

javascript - Jquery 隐藏/显示不适用于动画

jquery-ui - JQuery 自动完成而不使用标签、值、id