2016-10-18 15 views
0

サイズ変更時に、デスクトップまたはモバイルのいずれかを呼び出します。私はそれぞれのクリック機能を持っていて、それがデスクトップにあってモバイルに変更されていれば、両方とも動作しているようです。モバイル機能が真であればデスクトップ機能をオフにする必要があります。関数jQueryを無効にする

ここに私のコードの基本的なバージョンがあります。

Screen_size() 

$(window).resize(function() { 
    Screen_size() 
}); 

function Screen_size(){ 
    var w = $(window).width(); 
    if (w <= 710){ 
     Mobile(); 
    } 

    if (w > 710){ 
     Desktop(); 
    } 
} 

function Mobile(){ 
    console.log('Mobile'); 
    $("#open").click(function(e) { 
     console.log('Open Mobile'); 
    }); 
} 

function Desktop(){ 
    console.log('Desktop'); 
    $("#open").click(function(e) { 
     console.log('Open Desktop'); 
    }); 
} 
+0

のようにクリックイベントを作ります数百万回、そして別の 'click'イベントハンドラを追加するたびに追加されます。 – adeneo

+0

それを削除するには何が最良のオプションを知っていいですね? –

+0

ウィンドウのサイズを確認することは、あまり正確ではありません.27インチの画面に小さなブラウザウィンドウを開いて、自分の電話にいると思うでしょう。とにかく、X/Yの問題です。あなたがクリックするとウィンドウサイズを確認するだけです - > https://jsfiddle.net/adeneo/gpyeyqgb/ – adeneo

答えて

3

サイズ変更するウィンドウのための必要はありません。..ちょうどあなたがブラウザのサイズを変更するとまあ、resizeイベントは多分、何千回も起こり、この

$("#open").on('click', Screen_size); 
 
    
 
function Screen_size(){ 
 
    var w = $(window).width(); 
 
    (w <= 710) ? Mobile() : Desktop() ; 
 
} 
 

 
function Mobile(){ 
 
    console.log('Open Mobile'); 
 
} 
 

 
function Desktop(){ 
 
    console.log('Open Desktop'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="open">Click</button>

関連する問題