jQueryに関する質問です。
それぞれ独立したjQueryプラグイン、AとBがあって、
$(セレクタ).A().B();
という風にメソッドチェーンでそれぞれのプラグインを呼び出しているのですが、
Aのプラグイン内に、Bにメソッドチェーンで繋げるか繋げないかの、分岐を作ることは可能でしょうか。
また、可能でしたら方法についても教えてほしいです。
質問がわかりづらく恐縮ですが、
具体的には、Aでバリデーションチェックをし、Bで確認画面を表示という風にしたいのですが、バリデーションをクリアしていない場合、確認画面を表示させないようにしたく質問させていただきした。
何卒、よろしくお願いいたします。
みんなの回答 6 件
コールバックを使えば、出来ると思います。少し記述方法が変わるかもしれませせんけど
プログラムに関することで、それがプログラムの範囲で解決可能なことであるならば、「〜はできますか?」という質問の回答は「できる」になるよ。
チェーンメソッドの仕組みは、対象プラグインのjqueryオブジェクトをreturnしているだけだから、returnするかしないかの条件を書けばいいだけ。もちろん、受け手($.B)も、オブジェクトがないときの挙動を書いておく必要があるよ。
ただ、質問の内容がほぼ「プラグインの作り方教えて下さい」って内容になってるから、基本を勉強してから出直してこいって話になる。コードを書く欄もない井戸端サービスで教えるのなんて不可能だろ。
便乗して質問!
①jqueryプラグインの作り方でググったら、
とりあえず、最後に「return this」してメソッドチェーンを繋いどけってよくみるけど、
今回のトピ主の例だと、バリデーション通らなかった場合は、なにもreturnしなければいいってこと?
②上のコメ主は、
〉もちろん、受け手($.B)も、オブジェクトがないときの挙動を書いておく必要があるよ。
って書いてあるけど、GitHubでjqueryプラグイン何個か見てても、
オブジェクトがないときの挙動は書いてないポイんだけど、
プラグイン配布する場合なんかは普通書いておくもんなの?どんなの?
イカした回答よろしく!
回答が遅くなり大変申し訳ございません。
下記、サンプルコードを作成しましたので、アドバイス頂けないでしょうか。
やりたいこととしましては、
plugin_Aを実行し、エラーがあればplugin_Bの処理は行わず、
エラーがなくなれば、確認画面を表示するというふうにしたいです。
何卒、よろしくお願いいたします。
Plunker
http://plnkr.co/edit/KhALX957lslB5U6lgFCy?p=previewだれか?
関連するトピックス