我想在骑一元素时屏幕处于“编辑”模式onclick事件相关联的功能。 然后做编辑时,把原来的功能了。
所以,本来我有以下几点:
<script type="text/javascript">
var showAddNewForum = function(){
dojo.byId("NewForum").className = dojo.byId("NewForum").className == 'hidden'?'':'hidden';
}
</script>
<a onclick="showAddNewForum()" class="editable" id="AddNewForum" name="AddNewForum" style="cursor:pointer;">New Forum</a>
<div class="hidden" id="NewForum" name="NewForum">
<form action="">
<table>
<tr><td><label>Title</label></td><td><input type="text" id="newForumTitle"/></td></tr>
<tr><td><label>Description</label></td><td><input type="text" id="newForumDescription"/></td></tr>
<tr><td><label>Moderators</label></td><td><input type="text" id="newForumnModerators"/></td></tr>
</table>
<input type="button" value="submit"/>
</form>
</div>
在页面的顶部有一个管理员按钮,将放在页面的配置模式。 一类可编辑的所有元素将在配置模式,从而该元件可以通过一个小的形式配置。 我们的想法是在屏幕上某些控件会根据用户角色不同的行为。 例如:如果管理员展示它的其他明智的不显示控制。
这是通过以下实现:
activateAdministration = function() {
if (editOnClickHandle.length>0) {
dojo.forEach(editOnClickHandle,function(item){dojo.disconnect(item)});
editOnClickHandle = [];
}else {
dojo.query(".editable").forEach(function(node,idx,arr){
var handler = dojo.connect(node,"onclick",function(e){
console.debug(node.onclick);
var adminWindow = document.getElementById("adminWindow");
adminWindow.className = "displayInline";
adminWindow.style.top = (e.layerY + 0) + "px";
adminWindow.style.left = (e.layerX + 0) + "px";
document.getElementById("adminElementId").value = node.id;
document.getElementById("adminCurrentUrl").value = location.href;
document.getElementById("adminClass").value = node.className;
});
editOnClickHandle.push(handler);
});
}
}
<a class="tool" style="cursor:pointer;" onclick="activateAdministration();">Admin</a>
所以,问题是原始的onclick功能仍连接到该事件。 如果它是一个提交功能,或者类似的东西,那么它也将火这是不期望。
我可以设置一个处理程序原有的功能,它dissconnect,添加新的功能,然后完成编辑删除新的功能,并添加了原一回当?
感谢您的任何提示,我希望这个问题是清楚的(可能不是)高兴,如果需要添加更多的信息。