JQuery - 没有事件的新元素的操作

时间:2014-08-26 19:44:19

标签: javascript jquery

我有一个树插件,可以创建许多新的DOM元素。在树创建之后,我需要在加载时间页期间调整一些参数,然后用户才能开始与页面交互。点击后我对新DOM元素的操作没有任何问题 - .click没有实现,但是on.('click' , function(){//do sth})可以完成它。它尝试了类似于现场,负载的类似东西,但它只是不起作用。在此先感谢您的帮助。

$(document).ready(function(){
    //create tree
    $('#tree1').tree();

    //manipulate some new element created by tree() automatically - doesnt work
    $('.some-element').attr('someattr', 'value');

    //manipulate some new element created by tree() after event - does work
    $(document).on('click', '.some-element', function(){
        $(this).attr('someattr', 'value');
    });

});

2 个答案:

答案 0 :(得分:1)

正如上面的评论所说,你必须查看文档以查看插入的内容,但是在插入元素时如何抓取元素的示例是:

(在这种情况下,它是一个带有类some-element的元素,其元素为tree1}

$(document).ready(function(){
    //create tree
    $('#tree1').tree();

    // wait for the element to be inserted...
    $('#tree1').on('DOMNodeInserted', '.some-element', function () {
        $(this).attr('someattr', 'value');
    });

    //manipulate some new element created by tree() after event - does work
    $(document).on('click', '.some-element', function(){
        $(this).attr('someattr', 'value');
    });

});

答案 1 :(得分:0)

好的,我阅读了文档,我试图实现的目标是不可能的,因为即使多次单击元素后,此树插件也会插入新元素。我需要在树创建过程中从服务器端获得一些帮助,或者创建一些包含必要信息的对象,并在回调函数中使用它和/或尝试almightyBoognish解决方案。

顺便说一下,如何在我最初的问题下面的评论中接受答案?我只能接受全能的博士回复,我要感谢你们所有人:)