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