teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードの状態を正しく判断できておらず、回答が不適切であったため、修正。

2019/03/06 10:44

投稿

miyabi_pudding
miyabi_pudding

スコア9559

answer CHANGED
@@ -1,3 +1,21 @@
1
+ エラーの内容を拝見し、
2
+ 再度回答させていただきます。
3
+
4
+ エラーは、destroySliderが存在しないことを表しておりますので、
5
+ flag管理をすることによって、
6
+ 要素をjQueryプラグインに適用する前に(要素がdestroySliderメソッドを保持していない)、条件分岐でelseを通るのを防いでいる、状態です。
7
+ 要は、flagがtrueになることによって、初めて、
8
+ ウィンドウ幅がPCかつ、jQueryプラグインを適用している(要素にdestroySliderメソッドが存在する)という状態で、
9
+ destroySliderメソッドを実行、という流れを作れています。
10
+
11
+ 従来のソースコードでは、
12
+ ウィンドウ幅がPCの場合は、とにかく、destroySliderメソッドを実行!としてしまっているため、
13
+ jQueryプラグイン適用前に(destroySliderが追加されていない状態)、elseを通り、実行してしまっているということでしょう。
14
+
15
+ また、同時に、重複イベント追加というのも(処理の重複)同時に防いでいるかと思います。
16
+
17
+ -------- 以下元回答 --------
18
+
1
19
  エラーの内容を見ないとなんとも言えない部分がありますが、
2
20
  うまく行かなかった時のコードは、
3
21
  ”リサイズのたびに、無限にjQueryイベントが追加される”