Skip to content

Instantly share code, notes, and snippets.

@rummelonp
Created December 13, 2011 02:25
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rummelonp/1470175 to your computer and use it in GitHub Desktop.
Save rummelonp/1470175 to your computer and use it in GitHub Desktop.
jquery-ujs.js(rails.js)便利だよって話

jquery-ujs.js(rails.js)便利だよって話

自前でやる場合

JavaScript でクリックのイベント処理とか GET 以外ならトークンを含めるとか全部やらないといけないから面倒くさい

HTML

<a href="/some_action" class="some-action">some action</a>

Javascript

$('a.some-action').live('click', function(event) {
  event.preventDefault();
  var self = $(this);
  var url = self.attr('href');
  var csrf_token = $('meta[name=csrf-token]').attr('content');
  $.ajax({url: url, type: 'POST', data: {authenticity_token: csrf_token}})
    .success(function() {
      // 成功時の後処理
    })
    .error(function() {
      // 失敗時の後処理
    });
});

jquery-ujs.js に乗っかる場合

クリックのイベント処理とかトークンを含めるとか自分でやらなくても良い感じに処理してくれる

HTML

<a href="/some_action" class="some-action" data-remote="true" data-method="post">some action</a>

JavaScript

$('a.some-action').live('ajax:success', function() {
  // 成功時の後処理
}).live('ajax:error', function() {
  // 失敗時の後処理
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment