2015-02-04 2 views
0

У меня есть DIV указано как этотJQuery остановка URL нажмите на ДИВОМ приложенный функционировать

<div class="clickformore"> 
    <h3>Business in<br>action</h3> 
    <div class="foundoutmore"> 
    <div class="uparrow"></div> 
    <div class="underarrow"> 
     <p>Develop critical and problem solving skills faculties by investigating challenges faced by business leaders and to practice the skills to devise and implement practical solutions.<br><a href="http://www.ncl.ac.uk/postgraduate/modules/module/NBS8490/" target="_blank">http://www.ncl.ac.uk/postgraduate/modules/module/NBS8490/</a></p> 
    </div> 
    </div> 
</div> 

и где только h3 видно, а все остальное скрыто. jQuery, который показывает, что обнаружено больше div, у которого есть стрелка и текстовое поле, что делает его похожим на речевой пузырь.

Но когда пользователь нажимает на ссылку в скрытом div, когда отображается, он снова скрывается, не открывая ссылку.

$(".clickformore").click(function(e){ 
    e.preventDefault(); 
    if ($(this).find(".foundoutmore").css('display') == 'none') { 
     $(".foundoutmore").css("display","none"); 
     $(this).find(".foundoutmore").css("display","inherit"); 
    } else { 
     $(".foundoutmore").css("display","none"); 
    } 
}); 

Я попытался прицеливание по ссылке с помощью CSS делает Z-индекс надеясь, что это будет первым быть интерактивным до ДИВ спрятался без толка, я пытался выяснить способ, чтобы сделать показ не скрыть деление с это снова, но я не могу понять это и конец троса.

Есть ли способ, которым я могу сделать ссылку кликабельнее перед скрытием div?

ответ

2

Используйте этот братан ..

$(".foundoutmore").css("display","none"); 
$("h3").click(function(e){ 
    e.preventDefault(); 

    if($(this).next().css('display')=='none'){ 
     $(this).next().css("display","inherit"); 
    } else { 
     $(".foundoutmore").css("display","none"); 
    } 
}); 

DEMO

+0

Это сработало, спасибо. Я добавил к этому, потому что у меня более одного clickformore, и мне нужно было щелкнуть на новом, чтобы скрыть все остальное, а не оставить их открытыми. . '$ ("h3") нажмите (функция (е) { \t e.preventDefault(); \t если ($ (это) .next() CSS ('дисплей') == 'ни'). { \t \t $ ("foundoutmore ") CSS (" дисплей", "NONE");. \t \t $ (это) .next() CSS ("дисплей", "наследование");. \t} еще { \t \t $ ("foundoutmore. ") CSS (" дисплей", "нет");. \t} }); ' (Видимо, я понятия не имею, как это стиль, что работает на этом сайте, пойди разберись) – Sjrsmile

2
<div class="clickformore"> 

    <h3>Business in<br>action</h3> 

    <div class="foundoutmore hidden"> 
     <div class="uparrow"></div> 
     <div class="underarrow"> 
      <p>Develop critical and problem solving skills faculties by investigating challenges faced by business leaders and to practice the skills to devise and implement practical solutions. 
       <br><a href="http://www.ncl.ac.uk/postgraduate/modules/module/NBS8490/" target="_blank">http://www.ncl.ac.uk/postgraduate/modules/module/NBS8490/</a> 
      </p> 
     </div> 
    </div> 
</div> 




$(".foundoutmore").hide(); 

или добавить

.hidden { 
    display: none; 
} 

к вашему CSS тогда:

$(".clickformore").on('click', 'h3', function(e){ 
    e.preventDefault(); 
    var more = $(this).next('.foundoutmore'); 
    more.toggle(); 
}); 

Demo

+0

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