Надеюсь, этот пример лучше проиллюстрирует мою точку зрения, чем просто попытка ее объяснить:
Я использую один из многих плагинов водяных знаков jQuery. Чтобы прикрепить водяной знак к текстовому полю, синтаксис:
$(document).ready(function(){
$("#item_description").watermark("Description");
});
Это прекрасно работает, если у меня есть страница, которая уже содержит текстовое поле с id = item_description. Однако, если я попытаюсь выполнить какие-либо действия типа ajaxy, загрузив частичное представление, содержащее это текстовое поле, нажатием кнопки, то $(document).ready()
уже был вызван, а водяной знак не применяется. Я попытался поместить отдельный $(document).ready()
в частичное представление, но похоже, что rails (?) Удаляет любые блоки <script>
при рендеринге страницы, а это означает, что он все равно никогда не вызывается.
Есть ли простой способ сделать это? Я что-то упускаю из виду?
Редактировать : я использую плагин jQuery Colorbox , чтобы загрузить частичное представление внутри лайтбокса (через $(.colorbox).colorbox();
) - на самом деле я не делаю Ajax запрос сам. Если я до сих пор понимаю ответы, лучшим способом может стать использование функции обратного вызова плагина для выполнения любого необходимого мне javascript внутри партиала.
Рабочий пример : Основываясь на отзывах, я смог получить эту работу, используя colorbox, просто изменив вызов colorbox на:
$(".colorbox").colorbox({}, function(){
$(".description").watermark("Description"); //Changed to a class
});