2014-07-17 2 views
0

다음은 기존의 모든 기존 onlick 코드에 preventDefault를 추가하여 JQuery로 바꾸는 데 사용하는 코드입니다. 그것은 효과가있는 것처럼 보이지만, 문제가 있다고 생각할 수 있습니까? 우리는 jQuery로 완전히 이동할 계획이지만, 이는 단지 임시 수정 사항 일뿐입니다. 이 작업을 수행하는 것이 더 빠르거나 깨끗합니까?표준 자바 스크립트 onclick을 jquery 버튼으로 대체하십시오.

<html> 
    <head><title>Test</title> 
    <script src="includes/jquery/jquery-1.5.1.min.js?t=20130606"></script> 
    </head> 
<body> 
    <form name="testing"> 

    <script> 
     var robtesting = 100; 

     </script> 

    <button id="test">0</button> 
    <button onclick="alert('1');">1</button> 
    <button onclick="alert(this.form.tagName); alert(robtesting); ">1</button> 
    <button >2</button> 
    </form> 
    <script> 


    jQuery('#test').click(function(){ 
     alert('0');  
    }); 

     jQuery(document).ready(function(){ 
    jQuery('button').each(function(){ 
     var button = jQuery(this); 
     var hasclick = button.attr("onclick") 
     var hasJQueryClick = false; 
     var eventsObject = button.data("events"); 
     if(typeof eventsObject != 'undefined'){ 
      jQuery.each(eventsObject, function(i, e) { 
       if(i == 'click'){ 
        hasJQueryClick = true; 
       } 
      }); 
     } 

     if(typeof hasclick == 'function'){ 
      button.removeAttr("onclick"); 
      button.click(function(event){ 
       event.preventDefault(); 
       this.tryItOutRob = hasclick; 
       this.tryItOutRob(); 
      }); 
     } else if(!hasJQueryClick) { 
      button.click(function(event){ 
       event.preventDefault(); 
      }); 
     } 

    }); 
}) ; 
    </script> 
</body> 
</html> 
+0

이 솔루션은 괜찮습니다. 아무런 문제가 없습니다. –

+0

tryItOutRob() 함수는 어디에 정의되어 있습니까? –

+1

http://codereview.stackexchange.com/ – John

답변

0

작동하지만 페이지를로드 할 때마다 JavaScript의 추가 작업량입니다. 나는 전체 업데이트 된 HTML을 출력하고 이전 것으로 교체하는 것이 좋습니다.

+0

나를 위해 문제는 모든 PHP 생성 된 코드이며, 우리는이 레거시 자바 스크립트 코드 500 인스턴스가있을 것입니다. – GodLovesYou

+0

PHP로 onclick 속성을 제거 할 수 있습니까? 그런 다음 작업 부하는 대부분 서버 측 일 것입니다. – Piwwoli

+0

흥미로운 아이디어 ... 아마도 PHP 파일을 구문 분석하고 jquery onclick 이벤트를 단추 다음에 추가 할 수있는 스크립트를 작성할 수 있습니다. 예 : to

관련 문제