Jquery “动态创建后如何调用函数”;分区;元素准备好了

Jquery “动态创建后如何调用函数”;分区;元素准备好了,jquery,html,twitter-bootstrap,meteor,Jquery,Html,Twitter Bootstrap,Meteor,我有一个meteor应用程序,在其中我创建了一些div元素,并将它们添加到一个modal中。当我创建它们时,我通过jquery的.css(左:…,上:…)方法将它们放置在模式上。之后,我调用另一个函数,该函数在这些创建的div之间创建行(通过使用JSplumb插件) 我的问题是,Jsplumb试图绘制这些线,就好像我的div元素位于模态的左上角一样。换句话说,当我调用绘图线函数时,它不知道动态创建的元素在模态上的位置。因此,我需要等待div元素的创建完成 因此,我创建div elements函数

我有一个meteor应用程序,在其中我创建了一些div元素,并将它们添加到一个modal中。当我创建它们时,我通过jquery的
.css(左:…,上:…)
方法将它们放置在模式上。之后,我调用另一个函数,该函数在这些创建的div之间创建行(通过使用
JSplumb
插件)

我的问题是,Jsplumb试图绘制这些线,就好像我的div元素位于模态的左上角一样。换句话说,当我调用绘图线函数时,它不知道动态创建的元素在模态上的位置。因此,我需要等待div元素的创建完成

因此,我创建div elements函数的简化版本是:

ConnectStates.prototype.constructResultSets=function(){
    var sourceResultEntity=$('<div>').attr('id','fooID').addClass('fooClassName');
    var sourceResultSetTitle=$('<div>').addClass('title').text(this.sourceStates[i]);
    var connect=$('<div>').addClass('ep');
    sourceResultEntity.append(sourceResultSetTitle);
    sourceResultEntity.append(connect);
    sourceResultEntity.css({left:($('.sourcePart').width()/2, top:70});
    // source part is a div inside modal-body
    $('.sourcePart').append(sourceResultEntity);
}

我的div被放在了正确的位置,但是它们之间的直线被放在了错误的位置。

也许我不理解你的问题,但是你为什么不使用meteor呢

  • 创建一个包含div内容的模板

  • 希望这是你的选择

    也许我不理解你的问题,但你为什么不使用meteor呢

  • 创建一个包含div内容的模板

  • 希望这是您的一个选项

    您也在将其附加到conenct对象,而不是将connect对象附加到div。@Casey抱歉,我忘记了添加它。我已经编辑了我的问题,你能提供一个图像或一个JSFIDLE来提高视觉清晰度吗?很难想象你的“div”和“line”。在templates onRendered事件中调用函数。你也在将其附加到conenct对象,而不是将connect对象附加到div。@Casey抱歉,我忘记了添加它。我已经编辑了我的问题,你能提供一个图像或一个JSFIDLE来提高视觉清晰度吗?很难想象你的“div”和“line”。在templates onRendered事件中调用函数。谢谢你的回复。我有多少div将在运行时确定。如何为每个div创建一个模板?不确定我是否理解您的问题,但在模板数量或嵌套方面没有“a”限制。您可以通过{{{>foo1}{{{>foo2}}创建并仅包含。。。这是否回答了您的问题?也许这也是一个提示:您可以使用同一个div模板多次使用不同的给定值。看一看:谢谢你的回复。我有多少div将在运行时确定。如何为每个div创建一个模板?不确定我是否理解您的问题,但在模板数量或嵌套方面没有“a”限制。您可以通过{{{>foo1}{{{>foo2}}创建并仅包含。。。这是否回答了您的问题?也许这也是一个提示:您可以使用同一个div模板多次使用不同的给定值。看看:
    ConnectStates.prototype.connectResultSets=function(){
        // this is only one line, giving id of divs, nothing is important here
    }
    
    
    
        <template name="dynDiv">
          <div id="fooID" class="{{dynClassValues}}" ... ></div>
        </template>
    
    
    
    
    
        <#if showDynDiv>
            {{> dynDiv}}
        </if>
    
    
    
    
    
        Template.dynDiv.onRendered(...