0

私はいくつかの div を持っています。ユーザーがこの div をホバーすると、ajax 呼び出しを実行し、アクションをトリガーして、誰かがその div をホバーしたことをデータベースに書き込みます。

フォームと link_to なしの純粋な jQuery。

可能な限り単純な例が必要です:)

4

2 に答える 2

1

選択したソリューションに基づく作業コード

  $(".hoverable").hover(function(){
                console.log("hovered");
                  $.ajax({
                        type: "POST",
                        url: "/vastrodex",
                        data: {vastroman: $(this).attr('id'), vastrodexCount: 1}, // pass any additional parameters if you need
                        success: function(msg) {
                            console.log(msg); // do something on success e.g. console log the message
                        }
                    });
              },function(){
            });
于 2013-07-11T11:32:55.960 に答える
1

HoverLogger (またはお好きなもの) と呼ばれるログ用の新しいモデルとコントローラーを作成することをお勧めします。そうすれば、HoverLogger コントローラーの create アクションを呼び出してログを作成するときに、ロジックを分離して RESTful にすることができます。

目的の div にクラス.hoverableがあると仮定します。

$(".hoverable").hover(
    function () {
        // send ajax when mouse enters hoverable object
        $.ajax({
            type: "POST",
            url: "/hover_logger",
            data: {logged: true}, // pass any additional parameters if you need
            success: function(msg) {
                console.log(msg); // do something on success e.g. console log the message
            }
        });
    },
    function () {
        // do something when mouse leaves hoverable object
    }
);

createアクションでイベントをログに記録します。

def create
    HoverLogger.create!(user_id: current_user.id)
    respond_to do |format|
        format.js { render :nothing => true }
    end
end

HoverLoggerは user_id とタイムスタンプを追跡します。HoverLogger create メソッドのルートも作成します。

于 2013-07-10T23:28:26.967 に答える