2017-02-20 5 views
0

最近私のJQueryバージョンをアップグレードしなければならなかったので、プラグインの1つが結果として機能しなくなりました。私はmigrateプラグインを使用しましたが、bind()on()に変更しましたが、役に立たなくなりました。jquery 3.xのbind()

私は更新関数である線

$window.bind('scroll', update).resize(update); 

があると呼ばれる関数の内部でイアンLUNNによってjQueryの視差1.1.3(found here

を使用します。私が呼び出されていない

$window.on('scroll', update()).resize(update()); 

が、update()にこれを変更しました。 $window.scroll()も役に立ちません。

古い機能の機能を復元するにはどうすればよいですか?

+1

それをより読みやすくするために作成してくださいすることができ()

を削除'update'はです。 '$(window)'でなければなりませんが、私たちは推測しています。新しい更新関数が関数を返さない限り、Adding()は役に立ちません。 – mplungjan

+4

最初に関数名の後に '()'を追加するとすぐに呼び出されます。 '$ window.on( 'scroll'、update).resize(update)'を試してください。私の推測は 'update'関数は何も返さないので、何の関数もイベントにアタッチされていません – Rajesh

+4

なぜ' update'を 'update()'に変更しましたか?このように、この関数は 'on'呼び出し時にimmediatellyと呼ばれ、jQueryは' scroll'と 'resize'イベントを** update'関数の実行結果**にバインドしようとします。 $ window.on( "scroll resize"、更新); 'を試してください。それは動作するはずです。 –

答えて

0

ここでの$ window.scroll(と例です)

https://jsfiddle.net/sn7jr0ba/

function alertTemp(){ 
console.log("scrolled"); 
} 
$(window).scroll(alertTemp); 
+0

頻繁にトリガされるイベントに警告しないでください。代わりにconsole.logに – mplungjan

+0

が更新されました。ありがとう –

0

あなたは、最新のjQueryのため.on()にすべて.bind()を変更するための正しい方向にしているが、あなたは使用しないでください2番目のパラメータの括弧。これに

$window.on('scroll', update()).resize(update()); 

:これを変更

$window.on('scroll', update).resize(update); 

それが動作するようになりました。私たちは、どのような `$ window`か分からない - :)に

+0

あなたのコメントをお寄せいただきありがとうございます。ブラケット、それは私の最初のtだったry。あなたが望むなら、私はプラグインのソースを含めることができます、すでにリンクがあります。JQueryバージョン2にアップグレードしてもエラーは表示されません。バージョン3でワットが変更されたことを知りました。 –

+0

ようこそ! onでのイベント処理は既に正しいので、これがまだ動作しない場合、問題は要素を指す '$ window'変数(おそらく' $(window) '要素を参照していると仮定します) update() '関数を呼び出します。 –

+0

@ArneClicteur console.logはどうですか?そこにエラーメッセージがありますか?多分手がかりがあるかもしれません。 –

0

はい、また、あなたは[MCVE]グループのイベントが

$window.on('scroll resize', update);