2012-04-30 8 views
2

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

<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の機能の負荷子

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" 
       } 
      } 
     } 
+0

他のブラウザのコンソールにエラーが表示されていますか? – Mathletics

+0

このhtmlのはどこに問題があるのでしょうか?あなたはOnClick for JSを投稿できますか? – coder

+0

javascript関数が元の投稿に追加されました。 – njj56

答えて

2

はそれは奇妙だが、私はセミコロンの不在は、クリックイベントを乱す知られてきています。だから試してみてください

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

メモが追加されました。同じように、同様

を働くだろうあなたが常にjQueryの

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

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

}); 

bindまたはon(jQueryのそれ以降のバージョン)APIの一部のようなものを使用することができ、もちろんの

OR

または

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

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

+0

セミコロンは今はjqueryを避けようとしていますが、オプション。 – njj56

+0

次に、1つ以上のパラメータが文字列として正しく扱われるように、それらの周囲にアポストロフィが必要であると想像してもよいでしょう。それはそれかもしれませんか? –

+0

それは、私は今最初の投稿にjavascript関数を掲載している可能性があります。これは私が新しい仕事で継承した非常に古かった(IE4とdocument.allに関する参考文献を持っていた)コードです。 – njj56

関連する問題