2011-12-28 67 views
1

我想創建一個按鈕點擊的輕量級代碼,所以在一些人的幫助下,我現在有一個適用於所有按鈕的代碼。如何在一個代碼覆蓋所有按鈕時執行按鈕單擊操作?

但我忘了,是每個按鈕如何執行唯一的代碼,如我使用一個代碼時加載不同的頁面?

這裏是什麼,我現在有一個例子: http://jsfiddle.net/pufamuf/pGmZV/

感謝您的幫助大家:))))

編輯:每個按鈕應加載不同的頁面,如:

$('#content').load('SomePage.html', function() {}); 

回答

2

你可以使用id

jQuery(document).delegate(".menuCanBeActive", "click", function(e) { 
    e.preventDefault(); 
    jQuery(".menuCanBeActive").removeClass("menuActive"); 
    jQuery(this).addClass("menuActive"); 

    var pageToLoad = ''; 
    switch(this.id){ 
     case 'buttonone': 
      pageToLoad = 'aaa.htm'; 
      break; 
     case 'buttontwo': 
      pageToLoad = 'bbb.htm'; 
      break; 
     //etc 
    } 
    if('' !== pageToLoad){ 
     $('#content').load(pageToLoad, function() {}); 
    } 
}); 
+0

啊,我heaven't想到這一點。將嘗試,謝謝! – pufAmuf 2011-12-28 19:00:26

+0

不錯的解決方案..謝謝分享 – Gayan 2011-12-28 19:02:54

+1

np ..也別忘了設置e.preventDefault();在最頂端的 – gotofritz 2011-12-28 19:04:52

3

添加更多的東西有意義您的href:

<a id="buttonone" class="menuCanBeActive" href="one.html"></a><BR> 
<a id="buttontwo" class="menuCanBeActive" href="two.html"></a><BR> 
<a id="buttonthree" class="menuCanBeActive" href="three.html"></a><BR> 

添加,然後使用你的jQuery:

jQuery("#buttonone").addClass("menuActive"); 

//Menu Buttons 
jQuery(document).delegate(".menuCanBeActive", "click", function(e) { 
    e.preventDefault(); 
    jQuery(".menuCanBeActive").removeClass("menuActive"); 
    jQuery(this).addClass("menuActive"); 
    $('#content').load(jQuery(this).attr("href"), function() {}); 
}); 
+1

這樣做的好處是,如果關閉javascript的話,仍然可以做一些有用的事情 - 不顯眼。 – 2011-12-28 19:04:27

+0

+1這似乎是正確的方式。 – kapa 2011-12-28 19:07:00

+0

如果關閉了javascript,它們都會做一些有用的事情,包括問題中發佈的內容。此外,你的代碼正在做的是提醒href - 分支的位置取決於被點擊的按鈕在哪裏?最後,從href中獲得線索是一個壞主意。 – gotofritz 2011-12-28 19:14:38

相關問題