$ (document) .ready () и частичная загрузка представления - PullRequest
6 голосов
/ 10 апреля 2010

Я разрабатываю приложение, используя Asp.net MVC и JQuery. Я хотел бы использовать одно и то же соглашение об именах (классы и идентификаторы) для HTML-элементов в разных представлениях.

В случае, когда я хочу загрузить частичное представление асинхронно, фрагмент кода $ (document) .ready () в главном представлении теряет свою полезность, потому что ни один из тегов html и именования css внутреннего представления не распознается jquery. Я, конечно, не хочу писать один и тот же код для каждого представления. Как лучше всего решить эту проблему?

Ответы [ 2 ]

9 голосов
/ 10 апреля 2010

Для этого вы можете использовать .live(), например:

$(".myClass").click(function() { });

Становится так:

$(".myClass").live('click', function() { });

.live() работает по-другому. .click() связывает элементы, с которыми селектор соответствовал , когда он запускал , обычно document.ready. .live() работает, живя в корне DOM, прислушиваясь к всплывающим событиям и выполняя обработчик, если событие, которое является целью всплывающей подсказки, соответствует селектору.

0 голосов
/ 10 апреля 2010

Лично я просто загружаю весь контент, используя мои собственные обертки вокруг $ .post, и инициализирую там контент по мере необходимости. Это также помогает унифицировать ошибки обработки, ожидания уведомлений и т. Д.

Сторонние библиотеки обычно также предоставляют возможность предварительной обработки содержимого, загруженного ajax.

Частичные представления не будут вызывать document.ready, но они будут оценивать сценарии внутри тегов script в голове, поэтому вы можете принудительно вызывать отдельные сценарии для определенных представлений.

Другой способ, которым я пользуюсь - это настраиваемые HTML-теги на формах Э.Г.

<form custom-setup="MyCustomSetupFunc">

и мой обработчик $ .post проверит этот тег и вызовет эту функцию, передав экземпляр формы. Это помогает сузить область действия скрипта при загрузке частичного (полезно, когда несколько экземпляров частичного можно загрузить на одной странице).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...