1

私は興味深い問題を抱えています。clone()Google Chrome 拡張機能でjQuery 関数を使用しています。関数はテーブルの行を複製しています。問題は、TR にインライン javascript/jquery があり、$j()代わりにjQuery().

複製された行を出力しようとするたびに、「$j is not defined」というエラーが表示されます。

そこで、この問題に対する 2 つの解決策を考えました。

  1. 私のクロム拡張機能を$j()(衝突のないjqueryを使用してみました)の代わりに動作させますjQuery()

また

  1. 複製された項目を出力する前に検索し、 に置き換え$jますjQuery

私の問題は、どちらも達成できないことです...

 var rows = jQuery("#field-mapping-template").clone(true);
 rows.insertBefore("#field-mapping-template");
4

1 に答える 1

5

つまり、これを行うことはあまりお勧めしませんが、本当に必要な場合はできます。

jQuery の開発バージョンに移動し、次のコード行が表示されるまで一番下までスクロールします。

// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;

単純に次のように変更します。

// Expose jQuery to the global object
window.jQuery = window.$j = jQuery;

次のようなスクリプトを書くと:

<input type="hidden" name="name" value="test" />
<script type="text/javascript">
    $j(function () {
        alert($j('input').val());
    });
</script>

の代わりに$、 で機能し$jます。

これは、置換とは異なりjQuery()ます。はの$省略形ですjQuery()

私は本当に、本当に、本当にjQuery()$j などに置き換えることをお勧めしません。

最新リリース (v1.7.2) の時点で、変更が必要な開発コード内のオブジェクトへの参照が 879jQuery$jあります。

適切な検索と置換があれば実行できますが、実行することはお勧めしません.

于 2012-06-20T20:53:15.000 に答える