使用div's
。我正在进行更改,如果选择了一个div,它应该取消选择另一个div。
定义的div's
位于ul li
与每个li
一样,有一个div为classname
,称为inonset
。现在已经选择的div具有inonset isactive
类。
我在每个onclick
添加一个<div class="inonset" onclick="selectme(divid)">
函数来选择它并取消选择其他函数,但另一个将如何取消,我迷失了
还没有添加javascript代码,但是从代码中,它将清除我想要做的事情。
你最初会看到一个被选中而其他人在那里,我只是想选择任何一个并取消选择前一个,希望我的问题有意义
最糟糕的事情:我无法使用Jquery
,仅Dojo
或普通Javascript
更新#1
<div class="optionsBox" align="left" id="Invoicing" onclick="chooseDiv(this);">
function chooseDiv(oObj){
var d = document.getElementsByClassName("ul li div");
alert(d.className);
它给了我undefined而不是循环遍历类
div
正在使用类似
iv class =&#34; headerSelected isactive&#34;&gt;
需要从之前选定的isactive
中移除div
并添加到新选择的Div
答案 0 :(得分:0)
首先,您需要更改点击事件:
onclick="selectme(this)"
然后在功能:
function selectme(oObj){
var d = document.getElementById("ul li div");
d.removeAttribute("class");
oObj.className = oObj.className + " otherclass";
}
它应该可以正常工作
答案 1 :(得分:0)
我不确定答案是否仍然需要。但是,发布我的做法。
function removeClass(className) {
// convert the result to an Array object
var els = Array.prototype.slice.call(
document.getElementsByClassName(className)
);
for (var i = 0, l = els.length; i < l; i++) {
var el = els[i];
el.className = el.className.replace(
new RegExp('(^|\\s+)' + className + '(\\s+|$)', 'g'),
'$1'
);
}
}
var elements = document.getElementsByClassName("inoneset");
for (var i = 0; i < elements.length; i++) {
(function(i) {
elements[i].onclick = function() {
removeClass("isactive");
//this.setAttribute("class", this.getAttribute("class") + " isactive");
var headerElem = this.getElementsByClassName("headerSelected")[0];
headerElem.setAttribute("class", headerElem.getAttribute("class") + " isactive");
var addressElem = this.getElementsByClassName("selDelAddress")[0];
addressElem.setAttribute("class", addressElem.getAttribute("class") + " isactive");
var footerElem = this.getElementsByClassName("footerSelected")[0];
footerElem.setAttribute("class", footerElem.getAttribute("class") + " isactive");
};
})(i);
}
小提琴 - http://jsfiddle.net/38nv5rft/18/
<强>推理强>
如您所见,有一个删除类函数,它从文档中的元素中删除该类。可以根据要求更新它。
然后主要逻辑获取所有元素,迭代它们并绑定click函数。
在click函数中,我们从每个元素中删除inActive类,然后为当前块删除inActive类。请注意,根据小提琴,我没有找到更新inoneset元素的类,因此,注释掉了代码。
重点
点击事件气泡,因此,点击带有showDelete的元素和showDialog点击功能会将事件冒泡到inoneset的点击事件,即也会触发inoneset的点击处理程序。为了阻止事件传播到它,请在showDelete和showDialog函数中使用event.stopPropogation()。