$(документ).готовая страница в формате ascx после обратного вызова ajax

StackOverflow https://stackoverflow.com/questions/853955

Вопрос

У меня возникла небольшая проблема с этой настройкой, здесь у меня есть список .ascx файлы, и все они выполняют разные задачи с точки зрения вычислений для самого контроллера.Так что на моем .aspx страница, на которую я нажимаю Ajax.ActionLink() и это придаст этому конкретному .ascx файл, основанный на элементе, на который я нажал.Внутри этого .ascx есть 1-3 события, которые сработают, 2 из них onclick события и 1 - это onload.Тот Самый onclick с событиями проще работать, поскольку я могу жестко закодировать их непосредственно в событии controls следующим образом onclick="$("#toggleMe3").slideToggle("slow");" и тот onload должен запускаться, когда .ascx загружено, я тестировал это в $(document).ready(function(){}); звоните, это прекрасно работает в .aspx страница, но как только я попытаюсь добавить ее в .aspx страница не загружается, и идеально, чтобы это работало, но я понятия не имею, почему нет.На самом деле ничего в тегах скрипта не работает, если я вставляю непосредственно в .ascx на странице они работают только в том случае, если жестко закодированы в событиях элемента управления, ну, по крайней мере, в некоторых из них;тот самый onload и onprerender не стреляйте.

Это было полезно?

Решение

У меня была такая же проблема, после частичного сценария обратной передачи, указанного в $(document).ready не был выполнен.Я нашел решение здесь MSDN - Класс PageRequestManager

Похоже, добавление скрипта, подобного приведенному ниже, устраняет проблему

<script type="text/javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>

Другие советы

Я добился успеха, используя $ (document).готово в моих частичных файлах, которые загружаются через XHR.Являются ли представления, которые вы загружаете через XHR, исключениями JavaScript?Или они содержат искаженный HTML?

Обычно у меня есть свой $ (document).готовый метод внизу моей части, который я загружаю через Ajax, например...

<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>

Мне было трудно понять ваш вопрос ... но вот он начинается.

Если вы загружаете дату с помощью AJAX-вызовов, событие $(document).ready() не сработает, поскольку страница уже была загружена.Сейчас вы просто загружаете больше данных.

Если вы уже знаете, какие элементы управления появятся, предварительно загрузите JavaScript, но вместо простой привязки с помощью обработчика события click используйте обработчик live.

итак

$("#myControl").click(....);

превращается в

 $("#myControl").live("click", ....);

Извините, если это не то, что вы искали.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top