document.getElementById("but").onclick = showDropDown;
function showDropDown(e) {
document.getElementById("but").onclick = function() {};
if (e.stopPropagation) e.stopPropagation(); // W3C model
else e.cancelBubble = true; // IE model
document.getElementById("window").style.display = "inline-block";
document.onclick = function(e) {
var ele = document.elementFromPoint(e.clientX, e.clientY);
if (ele == document.getElementById("but")) {
hideDropDown();
return;
}
do {
if (ele == document.getElementById("window")) return;
} while (ele = ele.parentNode);
hideDropDown();
};
}
function hideDropDown() {
document.onclick = function() {};
document.getElementById("window").style.display = "none";
document.getElementById("but").onclick = showDropDown;
}
<input id="but" type="button" value="pressMe" />
<div id="window" style="display:none">popup</div>
演示:http: //jsfiddle.net/nazym/
我试图使用变量而不是指定元素的名称使 JavaScript 代码动态化,但我做不到。它总是返回错误。我想将它与不同的元素联系起来。
更新
我想id
用变量替换 JavaScript 代码中元素的 s,这样我就可以将它与任何元素一起使用。我试图这样做但失败了。基本上,我想使用变量而不是id
元素的 s 并以某种方式再次将其链接到元素。