مستخدم:Histolo2/collapsible.js

من ويكي مصدر، المكتبة الحرة

ملاحظة: بعد النشر، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.

  • فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
  • جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
  • إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
  • أوبرا: اضغط Ctrl-F5.
CollapsibleList = {
	ec: function (element) {
		parentChilds = element.parentNode.childNodes;
		for (var i = 0; i < parentChilds.length; i++) {
			if (parentChilds[i].tagName == "UL") {
				if (parentChilds[i].style.display == "" || parentChilds[i].style.display == "table" || parentChilds[i].style.display == "block") {
					element.innerHTML = "<b>+</b>";
					parentChilds[i].style.display = "none";
				} else {
					element.innerHTML = "<b>-</b>";
					try {
						parentChilds[i].style.display = "table";
					} catch(e) {
						parentChilds[i].style.display = "block";
					}
				}
			}
		}
	},
 
	processUL: function (element) {
		if (element) {
			var li;
			for (var i = 0; i < element.childNodes.length; i++) {
				li = element.childNodes[i];
				for (var j = 0; j < li.childNodes.length; j++) {
					if (li.childNodes[j].tagName == "UL") {
						li.childNodes[j].style.display = "none";
						CollapsibleList.processUL(li.childNodes[j]);
						li.innerHTML = "<span onclick=\"if (this.href) this.href='javascript:void(0)'; CollapsibleList.ec(this);\" style=\"cursor: pointer;\"><b>+</b></span> " + li.innerHTML;
						break;
					}
				}
			}
		}
	},
 
	main: function() {
		var mainDiv = document.getElementById("collapsible-list");
		if (mainDiv && mainDiv.hasChildNodes()) {
			for (var i = 0; i < mainDiv.childNodes.length; i++) {
				if (mainDiv.childNodes[i].tagName == "UL") {
					CollapsibleList.processUL(mainDiv.childNodes[i]);
				}
			}
		}
	}
}
 
$(CollapsibleList.main);