#205
29 июля 2010

Ненавязчивый Javascript

Вынесите Javascript из вашего HTML-кода, используя ненавязчивый JS. В этом выпуске расскажу, как в Rails 3 с этой техникой программирования.
Скачать (36.7 МБ, 12:39)

Источники

<!— ujs_example.html —>
<!DOCTYPE html>
<html>
<head>

<title>UJS Example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript" charset="utf-8">
$(function() {
$("#alert").click(function() {
alert(this.getAttribute("data-message"));
return false;
})
})
</script>

</head>
<body>
<h1><a href="#" id="alert" data-message="Hello UJS!">Click Here</a></h1>

</body>
</html>

<!— layouts/application.html.erb ->
<%= javascript_include_tag :defaults %>
<!- or —>

<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", "jquery.rails.js" %>
<%= csrf_meta_tag %>

<!— products/index.html.erb —>

<% form_tag products_path, :method => :get, :remote => true do %>

<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>

</p>
<% end %>

<div id="products">
<%= render @products %>

</div>


// products/index.js.erb
$(“products”).update(“<%= escape_javascript(render(@products)) %>”);
// or
$(“#products”).html(“<%= escape_javascript(render(@products)) %>”);

RSS Feed for Episode Comments 5 comments

1. Dukhov Jul 29, 2010 at 16:35

Очень интересно, спасибо


2. JPascal Aug 01, 2010 at 22:12

+1
Самое интересное то, что можно переключиться к jquery без заморочек.


3. Fin Aug 09, 2010 at 16:36

Единственный минус такого подхода, в том что, просматриваю вьюху сразу и не поймешь, использует ли какой либо эллемент js.


4. Ваня Sep 10, 2010 at 02:06

К сожалению, некоторое время данный ролик будет доступен только для просмотра на vimeo и вконтакте.


5. adis Feb 23, 2011 at 09:24

под хромом эта страница не открывается

Оставьте свой комментарий:

(ПРОПУСТИТЕ ЭТО ПОЛЕ)

(необходимо)

(не будет отображаться)


(используйте pastie или gist для вставки кода)



Друзья:
Спонсоры:
Масс-медиа:
Facebook_icon Twitter_icon Vkontakte_icon
Воздай Опенсорсерам