2

私のアプリケーションでは、サーバー側から http コードを取り込みます。このコードをアプリケーションに配置すると、IE でクリックするとイベントが発生しますが、他のブラウザーでは発生しません。クリックされた画像とイベントを処理するコードの一部を次に示します。

<img canExpand="true" style="cursor:hand" id="img34635" src="../images/plus.gif" EntityID="346" EntityCat="35" onclick="LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip)">

LoadChild は、ページのクライアント側の JavaScript 関数です。IE 以外で画像をクリックしても、何も起こりません。なぜこれが起こっているのか誰にもわかりますか?フォーマットの問題である可能性があります。再度、感謝します。

編集 - これは javascript 関数の load child です

 function LoadChild(lnEntityID, lnEntityCat, FullExpand, EquipID) {

            document.getElementById('dropTypes').disabled = false;
            document.getElementById('dropTypes').style.background = "white";

            DescStatus = 0;

            if (lnEntityCat == 0) {
               window.status = "Loading the tree...";
               PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0, 0, 1, LoadChildCallback);

            }
            else if (document.getElementById('img' + lnEntityID + lnEntityCat).canExpand == "true") {
                if (document.getElementById('div' + lnEntityID + lnEntityCat).style.display == 'none') {
                    document.getElementById('div' + lnEntityID + lnEntityCat).style.display = 'block';
                    document.getElementById('img' + lnEntityID + lnEntityCat).src = "../images/minus.gif"
                    window.status = "Loading the tree...HERE";




                    PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0, 0, 1, LoadChildCallback);


                                        }
                else {
                    document.getElementById('div' + lnEntityID + lnEntityCat).style.display = 'none';
                    document.getElementById('img' + lnEntityID + lnEntityCat).src = "../images/plus.gif"
                }
            }
        }
4

1 に答える 1

2

奇妙ですが、セミコロンがないとクリックイベントが妨げられることがわかっています。だから試してみてください

onclick="LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);"

追加された ; に注意してください。

また

もちろん、常にjQueryのようなものを使用できます

$('#img34635').click(function(){

    LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);

});

APIのbindor on(JQuery の新しいバージョン) の部分も同様に機能します。

また

1 つ以上のパラメーターをアポストロフィで囲む必要がある場合があります。たとえば、paramlnEntityCatはコードの特定の部分で文字列のように扱われます。

正直なところ、それがレガシーコードである場合、さまざまなブラウザを妨害する機能にあらゆる種類の不快感が存在する可能性があります. 私はそれをすべてコメントアウトしますが、そこから1行または2行が機能します。幸運を

于 2012-04-30T16:01:47.480 に答える