jQueryの拡張:オブジェクトの実行

前日に書かれた小さなプラグインを聴衆と共有します。これはあなたに役立つかもしれません。 githubの説明に追加するものは何もないので、もう一度説明します。

プラグインを使用すると、1つのオブジェクトでDOM操作コマンドを転送できます。つまり、多くのメソッド呼び出しを1つの関数呼び出しに置き換えることができます。

使用する


$.executeObject({"#my_div": ["text", " "]}) //    $.executeObject('{"#my_div": ["text", " "]}') //    JSON 


これはなぜですか?


サーバーから送信されたJavaScriptはデバッグが容易ではないため、オブジェクトを渡し、コードを最小限に抑えることをお勧めします。 代わりに

 $('table tr:first').remove(); $('input#name').val('John'); $('#my_div').addClass('error').text(' '); 

オブジェクトを作成して、executeObject関数に渡すことができます。

 var  = { 'table tr:first': 'remove' , 'input#name': ['val', ''] , '#my_div': [ ['addClass', 'error'] , ['text', ' '] ] } $.executeObject() 


特に、ERBにテンプレートの形でsomethingい何かを蓄積した場合:

 $('input#name').val('<%= escape_javascript(@person.name) %>') $('#my_div').addClass('error').text('<%= escape_javascript(@error) %>') 


コントローラで発行できます(摩擦の例):

 obj = {'input#name' => ['val', @person.name], '#my_div' => [%w[addClass error], ['text', @error]]} render js: "$.executeObject( #{obj.to_json} )" # ,       


そして一般に捨てるテンプレート(ビュー)。 コールバックコールバックとして$ .executeObjectを指定することもできます。

 $.post('/my/url', {: ''}, $.executeObject) 


応答として、準備されたオブジェクトを返すだけです:

 render json: obj 


つまり、データを転送できる場所で実行可能コードを転送する必要はありません。

戻り値


関数は、成功した呼び出しの数を返します。 失敗した呼び出しは黙って無視されます。

Source: https://habr.com/ru/post/J142910/


All Articles