动态添加class属性



就如之前文章中提到的,我的毕设是要做一个在线的流程图编辑系统。

首先,我定义三个<li>,单击后为canvas添加相应的形状。

<div class="sidebar node-palette" > 
		<div id="sidebarMenu">
			<ul>
				<li title="Click to add new" class="jtk-surface-droppable-node jsplumb-draggable" jtk-node-type="question">
					<i class="icon-tablet"></i>
					Question
				</li>
				<li title="Click to add new" class="jtk-surface-droppable-node jsplumb-draggable" jtk-node-type="action">
					<i class="icon-eye-open"></i>
					Action 
				</li>
				<li title="Click to add new" class="jtk-surface-droppable-node jsplumb-draggable" jtk-node-type="output">
					<i class="icon-eye-open"></i>	
					Output  
				</li>
			</ul>
		</div>
	</div>

/*-------------------我是注释,我是注释,代码粘上去灰底黑字好丑好丑,嫌弃脸( ▼-▼ )---------------------*/

以question为例,定义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.setAttribute("title","Down to false, Right to true");
		node.id += countQuestion;
		countQuestion++;
		var textNode = document.createElement("p");
		textNode.setAttribute("class","questionText");
		var text = document.createTextNode(name);
		textNode.appendChild(text);
		node.appendChild(textNode);
		canvas.appendChild(node);
		return(node.id);

	}
}

那么问题来了,如果我想为动态添加的div再添加class属性,怎么办呢?

方法之一就是监听”canvas“,也就是添加的div所在的parentnode。

$(document).ready(function(){
	var canvas = $("#canvas");
	canvas.bind("DOMNodeInserted",function(e){
		$("#canvas div").addClass("jsplumb-connected");
	});
}); 

但是,这个方法有缺陷,就是每当改动一次 canvas,就会为canvas的所有div节点设置一次属性。有心的小伙伴可以将函数体改为alert(”biu~biu~biu~“)试试。

如果不影响效果,此缺陷可以忽略。

当然,我也会再找其它改进方法,期待我以后的博客吧~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值