2012-01-17 6 views
0

사람들은이 코드를 jquery로 변환해야한다고 추천하고 있습니다.하지만 도구와 방법은 어디에서 어떻게, 어떻게 할 수 있으며 XMLHttpRequest가 jQuery와 어울리지 않는 이유는 무엇입니까 ??어떻게 일반 자바 스크립트 코드를 jQuery로 변환 할 수 있습니까?

는이 코드를 가지고 :

function showVal(str) { 
    if (str == "") { 
    document.getElementById("txtHint").innerHTML = "* Please type in School Name."; 
    return; 
    } 

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
    } else {// code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4) { 
     if (xmlhttp.status == 200) { // break this into 2 statements so you can handle HTTP errors 
     document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
     } else { 
     document.getElementById("txtHint").innerHTML = "AJAX Error (HTTP "+xmlhttp.status+")"; 
     } 
    } 
    }; // functions declared in this way should be followed by a semi colon, since the function declaration is actually a statement. 

    // encodeURIComponent() does all the escaping work for you - it is roughly analogous to PHP's urlencode() 

    // xmlhttp.open("GET","ajaxFuncs2.php?q="+encodeURIComponent(str),true); 
    xmlhttp.open("GET","ajaxFuncs2.php?q="+encodeURIComponent(str),true); 

    xmlhttp.send(); 
} 
+2

. 공식 웹 사이트 http://docs.jquery.com/How_jQuery_Works로 시작하십시오. –

+1

작동하는 경우 전환 할 이유가 없습니다. 실제로 jQuery를 사용하지 않고로드하는 경우 jQuery로 변환하면 페이지 크기가 증가합니다. –

+0

다른 jquery 코드로는 작동하지 않습니다. S – Drazek

답변

2

당신이 정말로 원한다면, 변환 코드가 훨씬 더 컴팩트하게 ...하지만 jQuery를에 대한 종속성을 추가하는 데 페널티 것이다. 개인적으로이 비교적 단순한 기능에 대한 크로스 브라우저 문제를 다루기가 편하다면 변환 할 이유가 없습니다.

말했다되고 있다는 변환 상대적으로 쉬운 것 :

function showVal(str){ 
    if(str == ''){ 
     $('#txtHint').html("* Please type in School Name."); 
     return; 
    } 

    $.get({ 
     url: 'ajaxFuncs2.php?q='+encodeURIComponent(str), 
     success: function(data){ $('#txtHint').html(data); }, 
     error: function(){ $('#txtHint').html('AJAX Error'); } 
    }); 
} 

... 또는 그 부근

+0

가 작동하지 않습니다. S – Drazek

+0

@Drazek - 적어도 올바른 방향으로 시작해야합니다. 요구 사항을 모른 채 사용자 코드를 작성하는 것은 불가능합니다. –

0

당신이 jQuery's AJAX engine를 사용하여 재 작성 할 수 있습니다. 쉬운 일이되어야합니다.

하지만 나이가 들어간 질문 : 에 무엇이 손상되지 않았는지 수정해야합니까?

그것과 같을 것이다 $.ajax를 사용 : 당신은 jQuery를에 대한 몇 가지 문서를 읽을으로 시작해야

function showVal(str){ 
    if(str == null || str == ''){ 
     $('#txtHint').html('* Please type in School Name.'); 
    } 
    else { 
     $.ajax({ 
       url: 'ajaxFuncs2.php?q='+encodeURIComponent(str), 
       success: function(data, textStatus, jqXHR){ $('#txtHint').html(data); }, 
       error: function(request, status, error){ $('#txtHint').html('AJAX Error (HTTP ' + status + ')'); } 
      }); 
    } 
} 
+0

jQuery를 사용하면 브라우저의 모든 특성을 대신해 코드가 수행하는 것을 볼 수 있기 때문에 조금 더 편하게 사용할 수 있습니다. –

+0

그것은 작동하지 않습니다, 그리고 어떻게하면 자바 스크립트 지식이없는 쉬운 작업이 될 수 있습니다. – Drazek

+0

@Drazek 음 ... JavaScript를 프로그래밍하려면 몇 가지 기본 JavaScript knowledgde가 필요합니다. 그러나 그것에 대한 많은 자원이 있습니다 (예 : http://www.w3schools.com/jquery/default.asp 및 http://www.w3schools.com/js/default.asp). 조금만 읽으십시오. –

관련 문제