首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript代码出现语法错误

JavaScript代码出现语法错误
EN

Stack Overflow用户
提问于 2012-08-26 13:56:11
回答 3查看 157关注 0票数 0
代码语言:javascript
运行
复制
document.getElementById("but").onclick = function(e) {
showDropDown(this, e);
};

function showDropDown(element, e) {
element.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 == element) {
        hideDropDown();
        return;
    }
    do {
        if (ele == document.getElementById("window")) return;
    } while (ele = ele.parentNode);
    hideDropDown(element);
};
}

function hideDropDown(element) {
document.onclick = function() {};
document.getElementById("window").style.display = "none";
element.onclick = function(e) {
    showDropDown(this, e);
};
}​


   <input id="but" type="button" value="pressMe" />
   <div id="window" style="display:none">popup</div>​

错误:https://www.dropbox.com/s/uzeiq6043rvueqf/Capture.PNG https://www.dropbox.com/s/w3rct18cumwva7m/bar3.png

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-26 14:07:41

你所做的就是在你复制或写这段代码的地方,很可能里面有一个bug。众所周知,JSFiddle就有这样的问题。您需要做的就是在记事本或TextEdit等简单编辑器中键入这段代码(错误上方1行,错误下方1行),然后将其复制并替换当前代码。我知道是这个错误,因为它的Unexoected token ILLEGAL部分意味着放在那里的隐藏字符显然不符合JavaScript,因此它根本不是一个语法错误。

这对我很有效。

票数 0
EN

Stack Overflow用户

发布于 2012-08-26 14:01:04

您有错误,因为您的文档未加载。

将您的代码放在window.onload

代码语言:javascript
运行
复制
window.onload=function(){
  //code
}

或者,如果您使用的是jquery:

代码语言:javascript
运行
复制
$(document).ready(function(){
  //code
});
票数 1
EN

Stack Overflow用户

发布于 2012-08-26 14:00:30

代码语言:javascript
运行
复制
document.getElementById("but").onclick = function(e) {
    showDropDown(this, e);
};

function showDropDown(element, e) {
    element.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 == element) {
            hideDropDown();
            return;
        }
        do {
            if (ele == document.getElementById("window")) return;
        } while ((ele = ele.parentNode) !== null);
        hideDropDown(element);
    };
}

function hideDropDown(element){
    document.onclick = function() {};
    document.getElementById("window").style.display = "none";
    element.onclick = function(e) {
        showDropDown(this, e);
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12127932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档