programing

aJAX 호출에서 html 리턴 안에 jQuery 함수 호출

minimums 2023. 10. 10. 20:11
반응형

aJAX 호출에서 html 리턴 안에 jQuery 함수 호출

저는 jQuery를 사용하는 웹페이지에서 작업하고 있습니다.서버에서 데이터를 받아 디브를 업데이트하는 아약스 콜이 있습니다.해당 데이터 안에는 jQuery 기능이 있지만 데이터를 페이지에 로드한 후에는 함수가 호출되지 않습니다.저는 이미 페이지에 적절한 js 파일이 포함되어 있습니다.

아약스 콜에서 반환되어 디바에 배치되는 것은 다음과 같습니다.

<script type="text/javascript">
    $(function() {
         $('input').myFunction('param');             
    }); 
</script>
<p> other html </p>

html을 페이지에 삽입한 후 반환된 자바스크립트를 실행하려면 어떻게 해야 합니까?

(저는 jRails 플러그인과 함께 Rails를 사용하고 있습니다)

자바스크립트 태그 평가를 원한다면 html 콘텐츠로 ajax 호출의 dataType 옵션을 "html"로 설정해야 합니다.

$.ajax({
  type: "GET",
  url: "yourPage.htm",
  dataType: "html"
});

또는 .js 파일을 로드하고 실행하려는 경우 dataType "script":

$.ajax({
  type: "GET",
  url: "test.js",
  dataType: "script"
});

여기에 추가 정보: Ajax/j쿼리.jax

ajax를 통해 검색하던 몇 개의 필드에 작은 jquery date picker를 추가하고 싶은 비슷한 문제가 있었습니다.내가 그 일을 처리하기 위해 한 일은...금방 더럽혀져요.내 아약스 전화에서 이 블록 전체를 돌려주는 대신에:

<script type="text/javascript">
    $(function() {
         $('input').myFunction('param');                         
    }); 
</script>
<p> other html </p>

저는 이것을 반품할 것입니다. (주로 구성된 |x| 구분자)

    $(function() {
         $('input').myFunction('param');                         
    }); 

|x|

<p> other html </p>

그리고 ajax를 통해 데이터를 돌려받았을 때, 저는 반환 값을 실행할 javascript와 표시할 html의 두 부분으로 나누었습니다.

 r = returnvalfromajax.split("|x|");       
 document.getElementById('whatever').innerHTML = r[1];  
 eval(r[0]);

변화하는

<script type="text/javascript">
...
</script>

받는 사람:

<script>
...
</script>

문제를 해결해 줬습니다.

jQuery load () 함수를 사용할 수 있습니다. http://docs.jquery.com/Ajax/load#urldatacallback 콜백으로 새 컨텐츠 예제를 로드한 후 실행될 함수를 정의할 수 있습니다.

$("#feeds").load("new_content.html", doSomething());

그리고 new_content.html에서 함수 doSomething(...)을 정의할 수 있습니다.

ajax.net 에 대하여endRequestHandler(sender, args)해결책은 잘 작동합니다.

시스를 써보셨나요?웹 양식.PageRequestManager.add_endRequest 메서드를 사용하시겠습니까?

    $(document).ready(function()
    {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);           
    }
    );
    function endRequestHandler(sender, args)
    {
        // whatever
    }

언급URL : https://stackoverflow.com/questions/235967/calling-a-jquery-function-inside-html-return-from-an-ajax-call

반응형