【问题标题】:How do I perform a jQuery function on an element after it has been inserted into the DOM?将元素插入 DOM 后,如何对元素执行 jQuery 函数?
【发布时间】:2014-03-30 13:50:52
【问题描述】:

考虑下面的代码

    $li         = $('<li></li>');
    $divHandle  = $('<div></div>');
    $divContent = $('<div></div>');
    $i          = $('<i></i>');
    $span       = $('<span></span>');
    $spanEnd    = $('<span></span>');
    $spanIndex  = $('<span></span>');
    $wrapper    = $('<div></div>');

    $divHandle.addClass('dd-handle').addClass('dd3-handle');
    $divContent.addClass('dd3-content').append($spanIndex).append($span);

    $i.attr('title','Delete this Node').addClass('icon-remove-sign');
    $spanEnd.addClass('delete-element-node').append($i);

    $li.addClass('dd-item').addClass('dd3-item');

    $divContent.append($spanEnd);

    $li.append($wrapper.append($divHandle).append($divContent));

    $('#ExhibitNodes > ol').append($li);

在此,我将一个元素 $divContent 附加到插入到 DOM 中的列表项。我的问题是,有没有一种类似于通过引用传递对象(如 PHP 或其他东西)的方法可以让你这样做:

    $divContent.fn.applyFunction();

之后,$divContent 被插入到 DOM 中。我们需要做的是将元素插入到 DOM 中,并带有一个加载指示器。调用 AJAX 过程时将显示加载指示器,当 AJAX 完成并成功时,它将使用该函数更新该元素。但为了做到这一点,我们需要先将它插入到 DOM 中。

想法?

【问题讨论】:

  • 只是为了更新 AJAX 似乎有点多。希望这是显而易见的,但如果 div 有一个 id,您可以使用 jQuery id 选择器再次找到它,然后在 ajax 成功函数中对其执行任何操作。即使没有 id,通常也可以设计一个可以隔离 div 的选择器。 D3.js 通过将数据属性绑定到 DOM 元素来工作,但我记得不是代码。

标签: javascript jquery dom asynchronous


【解决方案1】:

答案其实很简单。我不知道这一点,通过纯粹的实验,它奏效了。

http://jsfiddle.net/z3es9/

基本上,我创建了一个元素 $element - 给它一些属性和一个类,然后将 $.append() 它提供给 DOM。

单击按钮会修改原始的$element 并将更改传递给插入/附加的 DOM 元素。

哇。凉爽的!希望这对某人有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多