2012-04-30 2 views
2

에서만 서버 측에서 http 코드를 가져옵니다. 이 코드가 응용 프로그램에 배치되면 IE에서 클릭하면 이벤트가 발생하지만 다른 브라우저에서는 이벤트가 발생하지 않습니다. 클릭 한 이미지와 이벤트를 처리하는 코드 부분을 보여줍니다.onClick 이벤트가 firefox 또는 chrome에서 실행되지 않습니다. 응용 프로그램의 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가 아닌 다른 곳에서 이미지를 클릭하면 아무 일도 일어나지 않습니다. 왜 이런 일이 일어나는 지 알 수 있습니까? 서식 문제 일 수 있습니다. 다시 한번 감사드립니다.

편집 - 여기에 자바 스크립트 함수로드 아이

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

자바 스크립트 기능이 원래 게시물에 추가되었습니다. – njj56

답변

2

그것은 이상한입니다하지만 난 반 콜론의 부재는 클릭 이벤트를 방해 알고 있었다. 그래서 시도해보십시오

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

참고 추가;

OR 물론

당신은 항상

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

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

}); 

jQuery를

같은 것을 사용할 수있는 API의 bind 또는 on (JQuery와 이후 버전) 부분을 똑같이뿐만 아니라

를 작동합니다 또는

하나 이상의 parms를 아포스트로피로 묶어야 할 수도 있습니다. 예를 들어, 매개 변수 lnEntityCat은 코드의 특정 부분에서 문자열처럼 취급됩니다.

정직하게 말하면 - 그것은 다양한 브라우저를 방해하는 기능에 모든 종류의 불쾌감이있을 수 있습니다. 나는 그 모든 것을 주석으로 칠 하겠지만, 한 두 라인은 거기에서부터 작동한다. 행운을 빌어 요

+0

세미콜론이 차이를 만들지 않았으므로 지금 jquery를 피하려고합니다. 선택권. – njj56

+0

그런 다음 하나 이상의 매개 변수가 주위에 아포스트로피를 필요로하므로 문자열로 올바르게 처리됩니다. 그게 될 수 있을까요? –

+0

그것은 첫 번째 게시물에 javascript 함수를 게시했습니다. 이것은 새로운 작업에서 상속받은 아주 오래된 것입니다 (IE4와 document.all 관련 참조가있었습니다). – njj56

관련 문제