もう一度貼り付けられました。window.resizeが呼び出されたときにシングルJavascript関数をリフレッシュする方法
私は、ギャラリーのスクリーン幅を取得するphp-fileのタグにjQuery-Functionを持っています。ページが読み込まれてうまく動作するときに呼び出されます。しかし、今度は、新しいScreenwidthの権利を得るために、ウィンドウがサイズ変更されるたびに、関数を再度呼び出す必要があります。 1つの可能性は、window.resizeが呼び出されたときにwindow.location.hrefを使ってページ全体をリロードすることですが、それは私が望むものではありません。
リンクされたjsファイルとhtml-Structure ??をリロードすることなく、関数(またはJavaScriptコードブロック全体で書かれたもの)をリロードする方法はありますか?私はちょうどこの単一の機能をリロードします:
jqSlider(function(){
var container = jqSlider('div.sliderGallery');
var ul = jqSlider('ul', container);
var fensterBreite = jqSlider("#preloader").outerWidth();
var itemsWidth = 2559 - fensterBreite;
jqSlider('.slider', container).slider({
min: 0,
max: itemsWidth,
handle: '.handle',
stop: function (event, ui) {
ul.animate({'left' : ui.value * -1}, 500, 'linear');
},
slide: function (event, ui) {
ul.css('left', ui.value * -1);
}
});
に機能リファレンス.slider()メソッドは、デストラクタのCALを呼び出すための引数として「破壊」かかる場合lを再初期化する前に、スライダを破棄する行を追加することができます。さもなければ、既にスライダを含んでいるDOM要素のメソッドを再初期化しようとすると、奇妙な動作が起きる可能性があります。 – lsuarez
ああ、奇妙な構文は申し訳ありませんが、1つのドキュメントで2つの異なるjQuery-Versionsを使用しています。そのため、奇妙なコードを引き起こすvar jqSlider = $ .noConflict(true)を使用しました。とにかく、私はあなたの助言を試みたが、何か変わったことが起こる:関数が呼び出されていない、格納されたメモリ位置に移動されたとしても関数が呼び出されます。もちろんこれは問題ではありませんが、スライダを破棄して再初期化しようとすると、再初期化せずに破棄されます。私はjqSlider(window).resize(function(){jqSlider( '。slider'、container} .slider( "destroy"); mySliderFunc();})アイデアを試しましたか? – lucasdidthis
#preloaderはまだDOM内にあり、resize関数が呼び出されたときに表示されますか? – lsuarez