2013-06-22 44 views
1

我正在開發一個網站,它有一個按鈕,然後顯示內容,如果點擊並再次單擊時,它應該隱藏它。現在我的腳本會這樣做一次,所以當我點擊時,它會顯示內容,當我再次點擊時,它會隱藏它,但是當我再次點擊時,什麼都不會發生。我搜索它,我發現on()功能,但它不工作。請幫忙。jQuery 2.x - .on函數無法正常工作

這裏是我的代碼:

$(document).ready(function() { 
    $('#togglecont').on('click', function() { 
     $('#content').load('content/main.html'); 
     $('#togglecont').click(function() { 
      $('#content').load('content/blank.html'); 
     }); 
    }); 
}); 
+7

這看起來像起始... – elclanrs

+1

您是否試圖瞭解您使用的代碼?第三次點擊它會發生什麼? –

+0

從文檔[jQuery.on](http://api.jquery.com/on/):'要刪除使用.on()綁定的事件,請參閱.off()。要附加一個只運行一次然後自行刪除的事件,請參閱.one()' –

回答

0

試一下:

$(document).ready(function() { 
    $('#togglecont').on('click', function() {  
     if (!$(this).data('uri') || $(this).data('uri') === "blank") $(this).data('uri', 'main'); 
     else $(this).data('uri', 'blank'); 
     $('#content').load('content/' + $(this).data('uri') + '.html'); 
    }); 
}); 
+0

謝謝,效果很好! – MLL

0

你可以使用一個變量來跟蹤下一個頁面的加載:

$(function() { 
    var pages = ['content/main.html', 'content/blank.html'], 
     pageToggle = 0; 
    $('#togglecont').on('click', function() { 
     $('#content').load(pages[pageToggle]); 
     pageToggle = (pageToggle + 1) % 2; 
    }); 
}); 

每次點擊#togglecontpageToggle在0和1之間「切換」,從而導致pages[pageToggle] to yiel d兩頁中的一頁循環。

jsfiddle顯示的行爲,雖然我不得不使用.text()而不是​​,因爲我不知道如何包含外部HTML文件。