0

jQueryのonclickイベント内にRubyメソッドがネストされており、divがクリックされたときにメソッドを実行したいと考えています。これは機能します。ただし、このメソッドはページの更新時にも実行されます。ページの更新時にも実行されるのはなぜですか?onclickのみに制限する方法はありますか?

 $(function() { 
   $('.myDiv').click(function(){
      <% foo_bar %>
   });
 });
4

2 に答える 2

3

foo_bardivをクリックしたときにどのように実行できるかわかりません。Rubyはサーバー側で実行され、jQueryはクライアント側で実行されます。クライアントからrubyコードを実行することはできません。サーバーが結果をタグに与えるためにそれを解釈する必要があるため、
あなたは更新ページで実行されます。ただし、divをクリックしても、jquery関数は空になるため(記述しなかったため)、何も起こりません。と書いたとしても、jQueryは結果のみを実行し、関数自体は実行しません。foo_bar<% %><%= %><%= %>foo_bar

多分あなたはあなたがあなたの中で何をしたいのかを説明することができますfoo_bar。サーバーと対話する場合は、のようなものが必要になりますAjax

于 2012-09-13T00:25:44.847 に答える
1

私が書いたこのブログエントリを確認してください。つまり、rubyコードはサーバー上で実行され、クライアント上で実行されるjavascriptは何も認識しません。javascriptをrubyと相互作用させるには、ある種のajaxリクエストを介してサーバーへのリクエストを開始する必要があります。jqueryのようなライブラリはこれを助けます。

于 2012-09-13T00:32:45.417 に答える