2016-02-10 2 views
0

Я использую следующий код для создания отдельных вкладок, но также хочу, чтобы одна вкладка была ссылкой, а не вкладкой.Как сделать одну вкладку незаметной?

<navi> 
    <ul class="tabs"> 
     <li><a href="/" title="linkxtab 1">link 1</a></li> 
     <li c-tab="tab-2" title="tab 2">link 2</li> 
     <li c-tab="tab-3" title="tab 3">link 3</li> 
     <li c-tab="tab-4" title="tab 4">link 4</li> 
    </ul> 
</navi> 

Всякий раз, когда я нажимаю на «ссылке 1», остальные вкладки исчезнут, так как коды, видимо, думают, я хочу активировать эту вкладку, которая фактически должна быть связь и, следовательно, не имеет никакого содержания. Это происходит, когда я нажимаю на Li, не , потому что мой «tabsmenu» стиль имеет некоторое дополнение между литием и в в нем.

Теперь мой вопрос заключается в следующем: Есть ли CSS-код для того, чтобы только этот один литий без отключения ИТС ? Я уже пробовал pointer-event:none;, но это - конечно - приводит к блокированию всего в li, а также a.

Я использую этот скрипт для вкладок:

$('.tabs li').click(function(){ 
    var tab = $(this).attr('c-tab'); 
    $('.tabs li').removeClass('selected'); 
    $('.tabscontent').removeClass('selected'); 

    $(this).addClass('selected'); 
    $("#"+tab).addClass('selected'); 
    return false; 
}); 

Есть ли способ как-то блокировать только одну эту одну вкладку с куском кода, переименовав его с чем-то?

Спасибо!

// ПРИМЕЧАНИЕ. Я все еще хочу, чтобы вкладки работали, и только вкладка, называемая «linkxtab 1», не должна работать, за исключением ее ссылки.

+0

Придётся попытался 'HREF = "JavaScript: недействительным (0)" 'для тега привязки? – DaMaGeX

+0

попробуйте e.preventDefault(); на якорный щелчок, чтобы избежать перенаправления страницы, если это то, что вы ищете – DinoMyte

+0

Или, если вы хотите, чтобы полная вкладка была ссылкой для клика, установите ширину и высоту на 100%; – DaMaGeX

ответ

0

Если есть a при нажатии li, то перенаправление на href ссылки.

$('.tabs li').click(function() { 
    if ($(this).find('a').length) { 
     window.location.href = $(this).find('a').attr('href'); 
    } 

    var tab = $(this).attr('c-tab'); 
    $('.tabs li').removeClass('selected'); 
    $('.tabscontent').removeClass('selected'); 

    $(this).addClass('selected'); 
    $("#" + tab).addClass('selected'); 
    return false; 
}); 
+0

это сломается, как только поскольку вы включаете ссылки на другие вкладки. Я бы предположил, что вы не добавляете обработчик событий на первую вкладку в первую очередь. – sayCrispy

+0

Это в основном идея. Я думаю, что OP будет использовать его по своему усмотрению. @sayCrispy – Azim

+0

nevermind i misread, извините – sayCrispy

0

Вы можете просто сделать следующее, чтобы проверить, был ли щелчок элемента привязан или нет, а затем продолжить остаток операции.

$('li').on('click',function(e) 
{ 
    var target = $(e.target); 
     if(!target.is("a")) 
     return false;  
}); 
1

Попробуйте это:

.tabs > li { 
 
    pointer-events: none; 
 
} 
 

 
.tabs > li > a{ 
 
    pointer-events: all!important; 
 
}

+0

Спасибо, это очень хорошая идея! Хотя, я все еще хочу, чтобы вкладки работали, и это только делает работу ссылки. (Я собираюсь изменить эту информацию на мой вопрос!) –

+0

Хорошо! Я изменил '

  • link 1
  • ' to '
  • link 1
  • ' и добавил '.x {pointer-events: none;}' + '.x a {указатель-события: все! важно; } ', это работает! Спасибо!! –

    +0

    Редактировать: теперь ссылка не работает вообще, но отображается вкладка ... –

    Смежные вопросы