Вызов jQuery функционирует в возврате HTML из вызова Ajax

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
20
задан nnnnnn 3 March 2012 в 12:23
поделиться

5 ответов

Если Вы хотите оценку тега JavaScript с содержимым HTML, необходимо установить опцию типа данных вызова ajax к "HTML":

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

Или тип данных "сценарий", если Вы хотите загрузить и выполнить .js файл:

$.ajax({
  type: "GET",
  url: "test.js",
  dataType: "script"
});
[еще 115] информация здесь: Ajax/jQuery.ajax

27
ответ дан 30 November 2019 в 00:52
поделиться

У меня была подобная проблема, где я хотел добавить небольшие средства выбора даты jQuery к паре полей, я получал через ajax., вот то, что я сделал для обхождения его... просто быстрый и грязный. Вместо того, чтобы возвратить этот целый блок из моего вызова ajax:

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

я возвратился бы, это (отметьте составленный |x | разделитель)

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

|x|

<p> other html </p>

Затем, когда я получил данные назад через ajax, я разделил возвращаемое значение на 2 части: JavaScript, который будет выполняться, и HTML для отображения:

 r = returnvalfromajax.split("|x|");       
 document.getElementById('whatever').innerHTML = r[1];  
 eval(r[0]);
7
ответ дан 30 November 2019 в 00:52
поделиться

пробовали ли вы метод Sys.WebForms.PageRequestManager.add_endRequest?

    $(document).ready(function()
    {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);           
    }
    );
    function endRequestHandler(sender, args)
    {
        // whatever
    }
-7
ответ дан 30 November 2019 в 00:52
поделиться

Ну, вы можете использовать функцию jQuery load (): http://docs.jquery.com/Ajax/load#urldatacallback В качестве обратного вызова вы можете определить функцию, которая будет выполняться после загрузки нового контента. пример:

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

и в new_content.html вы можете определить функцию doSomething () ...

-1
ответ дан 30 November 2019 в 00:52
поделиться

для ajax.net решение endRequestHandler (sender, args) работает нормально, хотя

-1
ответ дан 30 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: