Я работаю с приложением rails 3 и хочу использовать сортируемый список. Я работаю с методом, показанным здесь . Мое приложение использует JQuery, и в макет моего приложения включен файл js, который вызывает $(document).ready()
для настройки некоторых визуальных элементов. Это, кажется, работает нормально.
Однако, когда я пытаюсь вызвать $(document).ready()
в моем шаблоне представления через content_for :javascript
, чтобы настроить сортируемый список, этот код никогда не запускается. У меня есть требуемый вызов yield :javascript
в моем файле макета, и если я загружаю страницу и смотрю на источник, все выглядит хорошо. Код никогда не запускается, то есть этот экземпляр $(document).ready()
никогда не срабатывает.
Я только что обнаружил, что если я заменю $(document).ready()
на $(window).load()
, тогда мой код js запустится.
Итак, мой вопрос: Почему $(document).ready()
не работает и $(window).load()
работает?
Код
Это работает:
<% content_for :javascript do %>
<script>
$(window).load(function(){
alert('it works!');
});
</script>
<% end %>
Это не работает
<% content_for :javascript do %>
<script>
$(document).ready(function(){
alert('it works!');
});
</script>
<% end %>
Вот макет
<!DOCTYPE html>
<html>
<head>
<title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
<!-- Reset Stylesheet -->
<%= stylesheet_link_tag "reset" %>
<!-- Main Stylesheet -->
<%= stylesheet_link_tag "style" %>
<!-- Invalid Stylesheet -->
<%= stylesheet_link_tag "invalid" %>
<%= javascript_include_tag :defaults, "nested_form", "DD_belatedPNG_0.0.7a", "simpla.jquery.configuration", "facebox", "jquery-ui.min" %>
<%= yield :javascript %>
<%= yield(:head) %>
<%= csrf_meta_tag %>
</head>
<body onload="initialize()"><div id="body-wrapper">
…