0
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

4

3 に答える 3

1

ドキュメントが読み込まれていないため、エラーが発生しました。
あなたのコードを入れてくださいwindow.onload

window.onload=function(){
  //code
}

またはjqueryを使用している場合:

$(document).ready(function(){
  //code
});
于 2012-08-26T06:01:03.743 に答える
0

あなたがしたことは、このコードをコピーまたは作成した場所であり、バグがあった可能性が最も高いです。JSFiddleには、このような問題があることが知られています。コードのそのセクション (エラーの 1 行上とその下の 1 行) をメモ帳や TextEdit などの単純なエディターに入力し、それをコピーして現在のコードを置き換えるだけです。このエラーのUnexoected token ILLEGAL一部は、そこに配置されている隠し文字が明らかに JavaScript に準拠していないことを意味していたため、構文エラーではありません。

私のために働きます。

于 2012-08-26T06:07:40.663 に答える
0
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);
    };
}
于 2012-08-26T06:00:30.290 に答える