1

私は過去にこれに実際に遭遇したことがないので、興味があります。なんらかの方法で次のことができますか?

DatatablesjQueryプラグインを使用しています。これが私の基本的な呼び出しです:

var oTable = $("#example").dataTable();

EnableInlineEditというクラスにプロパティがあります。それが本当なら、私はインラインで関数呼び出しを追加したいと思います:

var oTable = $("#example").dataTable().makeEditable();

これにより、jEditableプラグインが機能するようになります。Datatableプラグインには、含まれていないオプションが定期的に追加されているので、条件付きのif / elseを作成し、質問から2つの別々の呼び出しを作成するだけです。そうすることで、巨大なファイルのサイズを2倍にすることになります。.makeEditable()が含まれているコードの正確なコピーを2つ作成せずに、Datatable初期化の最後に.makeEditableを追加するインライン条件を何らかの方法で作成する方法はありますか?

4

2 に答える 2

1

あなたはこのようなことをすることはできません:

var oTable = var oTable = $("#example").dataTable();
if (whatever) {
    oTable.makeEditable();
}
于 2012-09-23T02:51:42.777 に答える
1

問題の値を返す名前付き関数を作成します。

function getval() {
    return some.value; // the value that decides if .makeEditable should run
}

.filter次に、チェーンに呼び出しを追加します。

var oTable = $("#example").dataTable().filter(getval).makeEditable();

getval真の値を返す場合、が.makeEditable()呼び出されます。そうでなければそうではありません。

oTable元の要素を参照する必要がある場合.end()は、チェーンの最後に追加します。

var oTable = $("#example").dataTable().filter(getval).makeEditable().end();

これはより良い解決策かもしれません。

.makeEditable()呼び出しを含めるだけで、の場合EnableInlineEditfalse関数を上書きします(または場合によっては関数を追加します)

if (EnableInlineEdit === false)
    jQuery.fn.makeEditable = function() { return this; };

したがって、がの場合EnableInlineEditfalsemakeEditablejQueryオブジェクトを返すだけの関数であるため、チェーンを続行できます。

于 2012-09-23T02:05:14.243 に答える