2016-12-13 20 views
2

目前按照jquery site .toggle()已在1.8版本後折舊。那麼是否有替代.toggle(),因爲我需要菜單應用程序的功能,我需要隱藏和顯示基於按鈕點擊div的內容有沒有替代.toggle()的jquery

我已經完成了任務根據JSFiddle但我我的網站上已經裝載1.12.4版本的jQuery的其他用途

我的js功能代碼

function hideToggle(button, elem) { 

    $(button).toggle(
    function() { 
     $(elem).hide(); 
    }, 
    function() { 
     $(elem).show(); 
    } ); 
} 

hideToggle(".button1", ".iframe1"); 

那麼,有沒有辦法阻止加載的jQuery的兩個版本

+1

從您鏈接到網頁:*「.toggle()方法是爲了方便而提供的,它**相對比較簡單,只需手動執行相同的行爲」* –

回答

4

這基本上就是hideshow正在做。

CSS

.hidden { 
display:none; 
/* you could also use !important here */ 
} 

JQuery的他們似乎

$('#someElement').toggleClass('hidden'); 
0

並沒有把與等效方法取代它。但是,您可以這樣做:

$(button).on('click', function() { 
    if ($(elem).is(':visible') { // if $(elem) is visible 
     $(elem).hide();/hide it 
    } else { // if not 
     $(elem).show(); // show it 
    } 
+0

如果它不在DOM中,您將如何顯示它? –

1

奇怪的是,對此的簡單解決方案是differenttoggle function。該功能切換元素的顯示。

你的功能可以簡化爲

function hideToggle(button, elem) { 
    $(button).click(
    function() { 
     $(elem).toggle(); 
    } 
); 
} 
0

您可以點擊撥打.toggle()來實現同樣的事情:

$(".button1").click(function() { $(".iframe1").toggle();}); 
$(".button2").click(function() { $(".iframe2").toggle();}); 

更新小提琴:https://jsfiddle.net/6g3cko1h/3/包括您的實用風格的更新版本設置方法:

function hideToggle(button, elem) 
{ 
    $(button).click(function() { $(elem).toggle(); }) 
} 
-1

你是否不理解被棄用的東西。切換功能有效。 這是「顯示或隱藏匹配的元素」。

用於切換當前文檔 - http://api.jquery.com/toggle/

所以

$('button').toggle() 

將隱藏的元素,如果它是可見的,或顯示它 - 如果它是可見

+1

對不起,但OP正在使用'$(button).toggle(function ...)清除* which * is *棄用的切換函數並正在尋找替代方法。您在此處聲明時不會棄用* other *切換功能。 –

+1

我同意。我認爲@lonesomeday的答案是最好的 – knaos