【问题标题】:jQuery events to new created divjQuery 事件到新创建的 div
【发布时间】:2013-08-05 08:05:51
【问题描述】:

访问者可以将不同的项目拖放到具有单独排序的多个容器中,以便可以更改每个容器中的项目。最后,每个容器都可以调整大小。所以,这一切都很好。

不幸的是,当访问者创建一个新的 div 是一个容器时出现了问题。该容器应该与在页面加载时加载的容器具有相同的机会。但是由于容器是新添加到页面中的,所以功能不起作用。

我尝试了不同的方法,例如 appendTo() 并再次调用函数 draggable()、resizable() 等,但都不起作用。

【问题讨论】:

  • 你应该在添加新的elements后调用相同的functions
  • 创建新 div 后再次调用函数效果不佳。无法将项目拖动到新 div。

标签: jquery jquery-ui jquery-ui-draggable jquery-ui-sortable jquery-resizable


【解决方案1】:

如果你这样做应该会起作用,事件将应用于新元素:

$('span').on('resize', function() { ... }); // or whatever event 'click', 'mousedown'..

var label = $(document.createElement('span'));

td.append(label);

【讨论】:

  • 我使用了 .on('mouseover') 函数来激活可拖动选项。感谢您的帮助!
【解决方案2】:

如果您有一些免费资源,请使用 livequery 插件。 (https://github.com/brandonaaron/livequery)

$('.container') 
    .livequery('click', function(event) { 
        alert('clicked'); 
        return false; 
 }); 

这会将您的函数应用于所有新容器。

【讨论】:

  • 使用jQuery on() 函数代替插件不是更好吗?我已经读到,可拖动函数不能完全与 jQuery on() 函数一起运行。
  • 我没有得到你的评论?如果它不起作用,为什么要使用它?我正在使用可拖动的 livequery 插件,它工作正常。
猜你喜欢
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多