2

JQueryでリンクを2回クリックする必要がある理由がわかりません。

$(function(){
    $("#more_reviewers").click(function(){
        $("#reviewer_list").html("<%= escape_javascript(render 'restaurants/restaurant_reviewer_list', :venue => @restaurant, :limit => @restaurant.reviews.count) %>");
    });
});

クリックすると、ビューは表示されているレビュー担当者の制限を上書きし、すべてのレビュー担当者を表示します。わからないのは、同じボタンを2回クリックする必要がある理由です。問題はCookieへの依存、または私が行っていない他の何かに関係しているため、同様の質問に対する他の回答はどれも私にはうまくいきませんでした。

もう1つテストしました。イベントの種類を示すアラートを送信すると、最初は何も表示されず(JSスクリプトがリンクにバインドされていないかのように)、2回目は正しいイベントの種類でアラートが表示されます( "クリック")。

ID「more_reviewers」のリンクは次のとおりです。

<%= link_to "more", "#", :id => "more_reviewers", :remote => true  %>

リンクには適切なアイテムが表示されますが、2回クリックした後にのみ(最初はページ上で何も変更されていないように見えます)

ヘルプは非常に高く評価されます。

4

6 に答える 6

4

show.js.erbには次のもののみが含まれている必要があります。

$("#reviewer_list").html("<%= escape_javascript(render 'restaurants/restaurant_reviewer_list', :venue => @restaurant, :limit => @restaurant.reviews.count) %>");

現在、クリックイベントを既にクリックしたリンクにバインドしています。つまり、もう一度クリックする必要があります。

于 2013-03-21T08:08:14.653 に答える
1

このような問題が発生したばかりで、このように解決できるはずです(これにより、application.jsではなく同じファイルで他のjsを実行できるようになります)。

$(function(){
  $("#more_reviewers").bind('ajax:complete', function() {
    $("#reviewer_list").html("<%= escape_javascript(render 'restaurants/restaurant_reviewer_list', :venue => @restaurant, :limit => @restaurant.reviews.count) %>");
  });
});
于 2014-01-26T14:38:20.923 に答える
0

HTMLコードでその「#」を削除します。に置き換えますjavascript:void(0);

<%= link_to "more", "javascript:void(0);", :id => "more_reviewers", :remote => true  %>
于 2013-03-21T07:08:06.327 に答える
0

これも機能します。

$("#more_reviewers").click(function(e){
    e.preventDefault();
    #.....
});
于 2013-03-21T07:11:13.703 に答える
0

試す:

<%= link_to "more", "", :id => "more_reviewers", :remote => true  %>

私の場合

<%= link_to "more", "#", :id => "more_reviewers", :remote => true  %>

も動作します。

于 2013-03-21T07:58:29.387 に答える
0

Javaスクリプトにこれを含めてみてください:

<%= javascript_include_tag "jquery-1.8.3", "jquery.validate" %>

私はこれを使用して解決策を得たので、これはあなたの問題を解決すると思います

于 2013-03-26T12:52:16.650 に答える