Не кликабельные ссылки
Добрый день всем.
Помогите догнать как это сделать. Есть два блока, один с текстом второй с ссылками, который с ссылками по умолчанию скрыт. Задача: Если пользователь кликнет по .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, время: 18:09. |