1

私はsearch-sort-using-ajaxに従っています

ここに私の宝石ファイルが含まれています

  • レール3.2.11
  • sqlite-3
  • will-paginate、「3.0」
  • jquery-rails、「2.2.1」

Application.js ファイルに含まれるもの

//= jquery が必要

//= jquery_ujs が必要

application.js のスクリプト

$(function () {
    $('#products th a').live('click', function () {
    $.getScript(this.href);
    return false;
});
})

コンソールに入る際のエラー

$("#products th a").live is not a function

検索しましたが、解決策が見つかりませんでした。私がここで行った実際の間違いを誰か助けてもらえますか

ありがとうございました

4

1 に答える 1

4

私の推測では、削除された jQuery 1.9 を使用していると思われますlive(いくつかのバージョンで非推奨になった後)。これを行うのと同じ効果を得ることができますlive

$(function () {
    $(document).on('click', '#products th a', function () {
        $.getScript(this.href);
        return false;
    });
});

click...これはハンドラーをアタッチしdocumentますが、クリックが開始された場合、またはセレクターに一致する要素を通過した場合にのみ起動します#products th a(これが実行されましliveた)。

しかし、ある理由(実際にはいくつかあります) でlive廃止され、削除されました。そのうちの 1 つは、ハンドラーをずっと下に置くことが最善ではないということです (非常にまれなケースではありますが)。たとえば、要素を削除して再作成しない限り、おそらく次のようにする必要があります。clickdocumentproducts

$(function () {
    $('#products').on('click', 'th a', function () {
        $.getScript(this.href);
        return false;
    });
});

これは、jQuery にclickハンドラーを onに配置するように指示しますが、クリック イベントが開始された場合、またはセレクター#productsに一致する要素を介してバブリングされた場合にのみ、ハンドラーを起動します。th a

于 2013-02-10T11:34:12.983 に答える