【问题标题】:Problem using jquery UI droppable and livequery!使用 jquery UI droppable 和 livequery 的问题!
【发布时间】:2009-08-28 02:46:51
【问题描述】:

我有一些要删除的元素的代码

var $tab_items = $("ul:first li",$tabs).droppable{ tolerance: 'touch' ,....

它工作正常,但问题是当我通过 ajax 或 javascript 加载另一个按钮时, 不起作用,因为新元素没有对此事件的绑定。

在其他类似情况下,我找到了使用 livequery(事件委托)的解决方案,但在这里它是不可能的,因为我不想附加函数,我想在第一行代码上附加相同的函数。

有什么解决方案比在每次加载新对象后制作 dropabble 更好?

【问题讨论】:

  • 这是我的函数:在 drop 里面移动一些内容: var $tab_items = $("ul:first li",$tabs).droppable({ tolerance: 'touch' , drop: function( ev, ui) { var $item = $(this); var $list = $($item.find('a').attr('href')).find('.connectedSortable'); ui.draggable. hide(300, function() { $tabs.tabs('select', $tab_items.index($item)); $(this).appendTo($list).show('slow'); }); } 这个是复制或执行多次的大功能(就像第二个答案一样)我需要当我添加另一个 div 或按钮时,它具有相同的“丢弃”行为

标签: jquery drag-and-drop livequery event-delegation


【解决方案1】:

只需在您的 ajax 成功回调中添加处理程序即可。

$.ajax({
   url: ...
   ...
   success: function(data) {
        $('<li>....</li>').droppable( { tolerance: 'touch', ... } )
                          .appendTo( '#tabs ul:first' );
        ...
   }
   ...
});

【讨论】:

    【解决方案2】:

    这可能是一个错误的预感,但您可能想看看: http://docs.jquery.com/UI/Sortable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多