2011-12-21 67 views
2

我想做一個自定義的jQuery切換功能。現在,我有兩個單獨的功能,lightsOnlightsOff。我怎樣才能組合這些功能,使他們切換(所以我可以鏈接到一個功能)?jQuery自定義切換功能?

function lightsOn(){ 
$('#dim').fadeOut(500,function() { 
    $("#dim").remove(); 
}); 
}; 

function lightsOff(){ 
$('body').append('<div id="dim"></div>'); 
$('#dim').fadeIn(250); 
}; 

回答

6
function toggleLights() 
{ 
    var $dim = $('#dim'); 
    if ($dim.length) 
    { 
     $dim.fadeOut(500, function() 
     { 
      $dim.remove(); 
     }); 
    } 
    else 
    { 
     $dim = $('<div/>', {id: 'dim'}); 
     $('body').append($dim); 
     $dim.fadeIn(250); 
    } 
} 

演示:http://jsfiddle.net/mattball/hxL8s/

2
function toggleLights(){ 
    if ($("body").has("#dim")) { 
     $('#dim').fadeOut(500, function() { 
      $("#dim").remove(); 
     }); 
    } else { 
     $('body').append('<div id="dim"></div>'); 
     $('#dim').fadeIn(250); 
    } 
} 
+0

咩,你真的不需要不斷重新查詢'#dim'的DOM。 – 2011-12-21 04:03:47

+0

嗯..感謝您的幫助,但它不適合我。 (然而,從MΓБДLL那裏得到了一個。) – 2011-12-21 04:05:16

+1

@MДΓΓБДLL - 真 - 我懷疑它永遠無關緊要 - 尤其是因爲您是通過id查詢的。此外,爲了優化它,我基本上會複製你的答案:) – 2011-12-21 04:06:14