我有一个流星应用程序,我在其中创建了一些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);
}
然后调用draw line函数
ConnectStates.prototype.connectResultSets=function(){
// this is only one line, giving id of divs, nothing is important here
}
我的div被放置在正确的位置,但是应该在它们之间的那行被放置在错误的位置
也许我不理解你的问题,但你为什么不使用流星呢?
- 用div的内容创建一个模板
<template name="dynDiv">
<div id="fooID" class="{{dynClassValues}}" ... ></div>
</template>
- 在if子句中插入模板
- 使用模板函数钩入
<#if showDynDiv>
{{> dynDiv}}
</if>
Template.dynDiv.onRendered(...
希望这是你的选择