Не кликабельные ссылки
Добрый день всем.
Помогите догнать как это сделать. Есть два блока, один с текстом второй с ссылками, который с ссылками по умолчанию скрыт. Задача: Если пользователь кликнет по .user-list-item, то нужно .group-info скрыть а блок .group-links показать. Проблема в том, что в момент клика по .user-list-item первый блок скрывается и показывается второй, но происходит еще и переход по ссылке. Именно в этом вся проблема. В момент первого клика, ссылки не должны сробатывать, а вот после должны работать. $("#user-list li").each(function(){ $(this).on("tap",function(event){ $(".group-links-wrap").css({"background": "none"}); $(".group-links").hide(); $(".group-info").show(); $(this).find(".group-info").hide(); $(this).find(".group-links-wrap").css({"background": "#E35834"}); $(this).find(".group-links").show(); }); }); <li class="user-list-item" > <table> <tr> <td class="avatar"> </td> <td class="group-links-wrap"> <div class="group-info"> ....... бла бла ........ </div> <div class="group-links" style="display:none;"> <a href="">Ссылка <a/> <a href="">Ссылка <a/> <a href="">Ссылка <a/> <a href="">Ссылка <a/> </div> </td> </tr> </table> </li> |
return false или event.preventDefault()
|
Спасибо за быстрый ответ. Если не трудно, можно пример? Прописываю event.preventDefault(), тогда ссылки перестают работать вообще!
$("#user-list li").each(function(){ $(this).on("tap",function(event){ $(".group-links-wrap").css({"background": "none"}); $(".group-links").hide(); $(".group-info").show(); $(this).find(".group-info").hide(); $(this).find(".group-links-wrap").css({"background": "#E35834"}); $(this).find(".group-links").show(); event.preventDefault(); }); }); |
Цитата:
|
Цитата:
|
Stilus,
сделали бы макет с css с непонятным Цитата:
|
Тогда просто проверяй закрыт ли еще элемент, типа:
if($(this).find(".group-links").css("display") == 'none') return false; и про замыкания почитай, можно сделать без обращения к ДОМ, как я писал раньше. |
Всем большое спасибо, за советы. Особенно благодарен "Zuenf". Проблему решил так:
var ancorIndex; $(document).on('pageinit pageshow', function(){ $("#user-list li").each(function(index){ $(this).on("tap",function(event){ $(".group-links-wrap").css({"background": "none"}); $(".group-links").hide(); $(".group-info").show(); $(this).find(".group-info").hide(); $(this).find(".group-links-wrap").css({"background": "#E35834"}); $(this).find(".group-links").show(); if(ancorIndex !=index) { event.preventDefault(); ancorIndex = index; } }); }); }); |
Часовой пояс GMT +3, время: 00:55. |