2012-04-03 111 views
0

有人可以幫我解決這個問題。我有一個頁面,其中是一個菜單,我在包含類'opener'的鏈接上執行一些js的東西。外部鏈接不開放

除非非開放鏈接(又名...外部鏈接),否則這些鏈接似乎什麼也不做。

你能告訴我我在做什麼錯在這裏: http://new.o7thwebdesign.com

如果你點擊「測試1」,頁面進入到內部網頁,因爲它應該。 (注意,'外部'只存在於主頁上,所以你需要點擊'首頁')

如果你點擊'外部'它什麼也不做。

回答

2

h.basic.js你有下面的代碼腳本:

$('#menu li').click(
    function() { 
     $(this).siblings().find('ul').slideUp('normal'); 
     $(this).siblings().find(".menu_arrow").attr('src', '/Images/sidebar_icons/right_arrow.png'); // Slide up all menus except the one clicked 
     $(this).has('ul').find('ul').stop(true,true).slideToggle('normal'); // Slide down the clicked sub menu 
     $(this).attr('class', 'current'); 
     var down = $(this).find(".menu_arrow").attr('src') == "/Images/sidebar_icons/right_arrow.png" 
     $(this).find(".menu_arrow").attr('src', 
      $(".menu_arrow").attr('src').replace(down ? 'right_' : 'down_', down ? 'down_' : 'right_')); 
     return false; 
    } 
); 

return false;防止這是一個鏈接的點擊事件的默認操作。請嘗試以下操作來代替:

$('#menu li').click(
    function (e) { 
     $(this).siblings().find('ul').slideUp('normal'); 
     $(this).siblings().find(".menu_arrow").attr('src', '/Images/sidebar_icons/right_arrow.png'); // Slide up all menus except the one clicked 
     $(this).has('ul').find('ul').stop(true,true).slideToggle('normal'); // Slide down the clicked sub menu 
     $(this).attr('class', 'current'); 
     var down = $(this).find(".menu_arrow").attr('src') == "/Images/sidebar_icons/right_arrow.png" 
     $(this).find(".menu_arrow").attr('src', 
      $(".menu_arrow").attr('src').replace(down ? 'right_' : 'down_', down ? 'down_' : 'right_')); 

     return e.target.target == '_blank'; 
    } 
); 

改變的線之中:

return e.target.target == '_blank'; 

這是一個有點混亂,但它看起來在事件(被點擊的錨)的目標元素,然後看着它的使用您的<a>標籤的目標屬性設置的目標媒體資源。如果它是_blank那麼它返回true,否則返回false。因此,與target="_blank"的鏈接將保留默認行爲,而沒有該鏈接的鏈接將禁止它。

+0

雖然我並不反對你。原始頁面關閉動畫不再觸發 – Kevin 2012-04-03 16:29:34

+0

我得到它的工作,通過取代返回false;與 [代碼]如果($(本).find( 'a')的ATTR( '目標')。){ \t \t \t \t \t \t返回真; \t \t \t \t \t}其他{ \t \t \t \t \t \t返回FALSE; \t \t \t \t \t} [/ code] 有沒有辦法縮短一點? – Kevin 2012-04-03 16:36:20

+0

是的,e.target.target的東西的作品。非常感謝 – Kevin 2012-04-03 16:38:46