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
      
      







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



戻り値



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



All Articles