我有一个流星应用程序,我在其中创建了一些div元素并将它们添加到模态中。当我创建它们时,我通过jquery的.css(left:.., top:..)
方法将它们放在模态上。之后,我调用另一个函数,在这些创建的div之间创建行(通过使用JSplumb
插件)。
我的问题是,Jsplumb尝试绘制这些线条,好像我的div元素位于模态的左上角。换句话说,当我调用绘图线函数时,它不知道我动态创建的元素在模态上的位置。因此,我需要等到div元素的创建完成。
所以,我创建div元素函数的简化版本是:
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);
}
然后我调用绘制线函数
ConnectStates.prototype.connectResultSets=function(){
// this is only one line, giving id of divs, nothing is important here
}
我的div被放置在正确的位置,但是应该在它们之间的线放在错误的位置。
答案 0 :(得分:0)
也许我不明白你的问题是正确的,但为什么不使用流星呢?
<template name="dynDiv">
<div id="fooID" class="{{dynClassValues}}" ... ></div>
</template>
<#if showDynDiv>
{{> dynDiv}}
</if>
Template.dynDiv.onRendered(...
希望这是一个选择