2016-04-15 5 views
0

すべてのページで使用されるajaxStart関数を持つJavascriptファイルがあります。選択したページのみで共通のJavaScriptでAjaxStartを実行する方法

私の問題は、ボタンをクリックしてajaxStartにアクセスするには、選択したページだけを必要とします。これをどのように実装すればよいですか?

JS:

$(document).ready(function() 
{ 
    $(document).ajaxStart(function() 
    { 
     $("#overlay").css 
     ({ 
     "display"   : "block", 
     "background-color" : "rgba(255, 255, 255, 0.4)", 
     "width"    : $(document).width(), 
     "height"   : $(document).height(), 
     "position"   : "absolute", 
     "z-index"   : 99999 
     }) 
    }); 
    $(document).ajaxComplete(function() 
    { 
     $("#overlay").css("display", "none"); 
    }); 
}); 

HTML:

<div id="overlay" style="display:none"> 
    <img src='loading.gif'/> 
</div> 

上記のコードは、ボタンクリックでdivの内側に搭載GIFを表示します。ボタンのクリック機能は異なるHTMLページにあります。

+0

どのようにコードがどのように見えますか? – Danmoreng

+0

私は私の質問を編集しました。 –

+0

$(document).readyは、ページが読み込まれたときに実行されます。ボタンをクリックするだけでajaxStartを使用する場合は、document.ready関数からそれを移動し、でボタンにアタッチする必要があります – Danmoreng

答えて

0

オンロード機能のボタンをクリックするか、その代わりにボタンをクリックしてボタンをクリックしたときにオーバーレイを追加したいかどうかはわかりません。

HTML::

<button onclick="overlay()">Click me for Overlay</button> 

JS:この

いずれかの方法を使用すると、ボタンを経由して、それをトリガーする方法です

function overlay(){ 
    $(document).ajaxStart(function() 
    { 
     $("#overlay").css 
     ({ 
     "display"   : "block", 
     "background-color" : "rgba(255, 255, 255, 0.4)", 
     "width"    : $(document).width(), 
     "height"   : $(document).height(), 
     "position"   : "absolute", 
     "z-index"   : 99999 
     }) 
    }); 
    $(document).ajaxComplete(function() 
    { 
     $("#overlay").css("display", "none"); 
    }); 
} 
0

他のと同じスクリプトでそれを入れないでくださいこの場合common.javaに一般的なスクリプトがあります。 'ajaxstart.java'などの別のファイルに入れて、使用する選択されたページにのみ配置します。

しかし、このajaxStartイベントを使用すると、cssを表示したくない呼び出しであっても、すべてのページですべてのajax呼び出しがトリガーされます。あなたが作った各AjaxコールにCSSを手動で追加することをお勧めします。

$('.button').click(function() { 
    // Button click, calling ajax function 
    $("#overlay").css 
    ({ 
    "display"   : "block", 
    "background-color" : "rgba(255, 255, 255, 0.4)", 
    "width"    : $(document).width(), 
    "height"   : $(document).height(), 
    "position"   : "absolute", 
    "z-index"   : 99999 
    }); 

    $.post('script.php', 
    { 
     variable: variable, 
     char: char, 
    }, function(result) { 
     alert(result); 
     // When ajax call complete 
     $("#overlay").css("display", "none"); 
    }); 
}); 
関連する問題