为动态增加节点添加class属性

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">就如之前文章里提到的那样,我的毕设是要做一个流程图。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">首先,我定义了画流程图的块。</span>

<div class="jtk-demo-main">
	<!-- demo -->
		<div class="jtk-demo-canvas canvas-wide flowchart-demo jtk-surface jtk-surface-nopan" id="canvas">
			<div class="window jtk-node terminal" id="nodeStart">Start</div>
			<div class="window jtk-node terminal" id="nodeEnd">End</div>
		</div>      
	</div>	

然后,定义了三个键question、action、output,每当单击后,会在canvas中添加相应的图形。

以question为例

function dispQuestionPrompt(){ // add question node
	var name = prompt("enter the action name");
	if (name) {
		var canvas = document.getElementById("canvas");
		var node = document.createElement("div");
		node.setAttribute("class","window jtk-node nodeDiamond");
		node.setAttribute("id","question");
		node.id += counter;
		counter++;
		var textNode = document.createElement("p");
		textNode.setAttribute("class","questionText");
		var	text = document.createTextNode(name);
		textNode.appendChild(text);
		node.appendChild(textNode);
		canvas.appendChild(node);
		}
	}
}
那么,问题来了:如果我想为动态添加的div添加class属性怎么办?

可以监听canvas,如果canvas树有插入新的dom div节点,为其添加class属性。

$(document).ready(function(){
	var canvas = $("#canvas");
	canvas.bind("DOMNodeInserted",function(e){
		$("#canvas div").addClass("jsplumb-connected");
	});
}); 
但是,这个DOMNodeInserted有缺陷,可以将最内层函数体改成alert("hi")试一试。 :)

忽略这个缺陷,也能得到理想的结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值