2017-12-23 9 views
2

私自身のダイアログプラグインを作成しようとしていますが、jQuery UIダイアログがそのパラメータを受け入れる方法を反映させます。jQuery UIダイアログのようなオプションとアクションパラメータを受け入れるjQueryプラグインを作成する方法

I.e. jQueryのUIダイアログは、そのコンストラクタ内のオプションを取り、変数のダイアログエレメントへの参照を保持せずに後でダイアログを開くために呼び出すことができます。

私はGitHubでそのソースを読みましたが、それがどのように達成されているのか理解できません。

jQueryの道

<a onclick="$('#dialog').dialog('open');">test</a> 

$(function() { 
    // No reference kept 
    $('#dialog').dialog({left: 100, top: 10}); 
}); 

私のプラグイン

(function ($) { 

    $.fn.modal = function (options) { 

     var defaults = { top: 100, overlay: 0.5, closeButton: '.closeDialog' }; 
     options = $.extend(defaults, options); 

     if(options == "open"){ 
      // open 
     } 
     if(options == "close"){ 
      // close 
     } 
    }; 
} 
+1

GitHubからコードをコピーして好きなように変更してみませんか?それともそれを理解しようとしていますか? –

+1

'options'が文字列かどうかをチェックする必要があります:' var isMethodCall = typeof options === "string"; 'https://github.com/jquery/jquery-ui/blob/0b7246b6eeadfa9e2696e22f3230f6452f8129dc/ui/widget。 js#L209 –

+0

@RacilHilan私は、彼らがどのようにそれを行うのか、もしあれば、そうするためのベストプラクティスを理解し、学びたいと思っています。 jQuerysサイトのプラグインチュートリアルでは、アクションとオプションを渡していますが、一度渡されるとそれらの違いを伝える方法は表示されません。 – user3953989

答えて

1

アクションとオプションの違いは非常に簡単です。

アクションは文字列です:

$('#dialog').dialog('open'); 

オプションは、オブジェクトのプロパティですが:

$('#dialog').dialog({left: 100, top: 10}); 

に設けられたパラメータの種類の簡単なチェックは、トリックを行います。これはjQueryのやり方です:

var isMethodCall = typeof options === "string"; 
関連する問題