Javascript внутри Facebox лайтбокс
Я работаю над приложением rails, где я использую jQuery и лайтбокс Facebox для всплывающих форм. Я хочу использовать некоторую проверку jQuery в форме. Когда я пытаюсь реализовать это, я сталкиваюсь с некоторыми странными результатами.
Если я помещаю javascript непосредственно в представление, которое я загружаю во всплывающем окне, javsacript работает просто отлично.
Пример: app/views/ item / view.html.erb
...
<script type="text/javascript">
$(document).ready(function() {
...
});
</script>
Однако, если я абстрагирую его на один шаг и вставлю javascript в макет, который я использую для всплывающего окна, произойдет сбой.
Пример: app/views/ layouts / popup.html.erb
<script type="text/javascript">
$(document).ready(function() {
...
});
</script>
<div id="popup">
<%= yield %>
</div>
Он также завершается ошибкой, если я извлекаю сценарий из кода, который непосредственно кодируется в представление, в отдельный файл javascript, например, если я помещаю тот же сценарий в ../public/javascripts/popup.js
тогда, на мой взгляд, я делаю:
<%= javascript_include_tag 'popup' %>
Это не здесь.
Можно подумать, что не имеет значения, в каком файле он находится. Он должен быть загружен таким же образом.
Есть идеи, почему это происходит?
1 ответ
Я думаю, что в вашем коде document.ready вы делаете что-то вроде
$(".supercool")..bind('click', function() {
somethingAwesome();
});
Так что это будет прикрепляться ко всем классам с классом supercool, которые существуют при загрузке. Что вы хотите сделать, это использовать в прямом эфире
$('.supercool').live('click', function() {
// Live handler called.
});
Хотя это всего лишь предположение - я думаю, это то, что происходит - нужно увидеть больше javascript, если это не так.