2014-03-28 2 views
0

자바 스크립트 코드에서 innerHTML은 다른 자바 스크립트 함수를 잠그고 있습니다. 이유를 모르겠습니다 ... 다른 사람을 잠그는 javascript입니다.JavaScript innerHTML 다른 자바 스크립트 잠그기

 var city = $('#search-bar').val(); 
     $.ajax({ 
      url: '/Index/getWeatherSearch', 
      data: { city: city }, 
      //async: false, 
      error: function (resp) { 
       alert("Error"); 
      }, 
      complete: function (resp) { 
       var div = document.getElementById('rb-grid'); 
       div.innerHTML = resp.responseText + div.innerHTML; 
      } 
     }); 
+3

'잠금'은 무엇을 의미합니까? – epascarello

+1

잠금 ?? 당신은 몇 가지 오류의 다른 jquery 함수를 멈추는 것을 의미합니까? –

+1

가능한 복제 : http://stackoverflow.com/questions/22694969/javascript-stop-working-after-ajax-call?rq=1 –

답변

3

정확한 잠금이란 무엇을 의미 할 지 모르지만 요소를 제거하고 다시 추가하는 것입니다. 새 콘텐츠를 추가하는 것이 좋습니다.

$("#rb-grid").prepend(resp.responseText); 
3

var div = document.getElementById('rb-grid'); 
div.innerHTML = resp.responseText + div.innerHTML; 

당신이 어쨌든 jQuery를 사용하는 경우, 왜 jQuery를 사용하지?

대신 completesuccess 처리기를 사용하여 수행

$('#rb-grid').prepend(resp); 

문제는 코드에서 innerHTML를 사용하여 (AB)에 의해, 해당 div 요소에 대한 전체 DOM의 일부를 재 구축한다는 것이다. 모든 자손 DOM 요소에 대해 수행 한 모든 이벤트 핸들러 및 수정 사항이 손실됩니다.