jQueryのonclickイベント内にRubyメソッドがネストされており、divがクリックされたときにメソッドを実行したいと考えています。これは機能します。ただし、このメソッドはページの更新時にも実行されます。ページの更新時にも実行されるのはなぜですか?onclickのみに制限する方法はありますか?
$(function() {
$('.myDiv').click(function(){
<% foo_bar %>
});
});
jQueryのonclickイベント内にRubyメソッドがネストされており、divがクリックされたときにメソッドを実行したいと考えています。これは機能します。ただし、このメソッドはページの更新時にも実行されます。ページの更新時にも実行されるのはなぜですか?onclickのみに制限する方法はありますか?
$(function() {
$('.myDiv').click(function(){
<% foo_bar %>
});
});
foo_bar
divをクリックしたときにどのように実行できるかわかりません。Rubyはサーバー側で実行され、jQueryはクライアント側で実行されます。クライアントからrubyコードを実行することはできません。サーバーが結果をタグに与えるためにそれを解釈する必要があるため、
あなたは更新ページで実行されます。ただし、divをクリックしても、jquery関数は空になるため(記述しなかったため)、何も起こりません。と書いたとしても、jQueryは結果のみを実行し、関数自体は実行しません。foo_bar
<% %>
<%= %>
<%= %>
foo_bar
多分あなたはあなたがあなたの中で何をしたいのかを説明することができますfoo_bar
。サーバーと対話する場合は、のようなものが必要になりますAjax
。
私が書いたこのブログエントリを確認してください。つまり、rubyコードはサーバー上で実行され、クライアント上で実行されるjavascriptは何も認識しません。javascriptをrubyと相互作用させるには、ある種のajaxリクエストを介してサーバーへのリクエストを開始する必要があります。jqueryのようなライブラリはこれを助けます。