2016-03-23 18 views
0

Hi dönmek için: Sonratıklayın benim atlıkarınca aşağıdaki kodla görüntülenen bir web sayfasını Carousel.html var Ev web sayfasına

   <div id="carouSel" class="carousel slide" data-ride="carousel"> 

        <div class="carousel-inner" role="listbox" id="carousel-inneR"> 
         <div class="item active"> 
          <img class="first-slide" src="././img/Carousel_img/Jimmy_Lannon_21.jpg" alt="First slide"> 
           <div class="container"> 
           </div> 
         </div> 
         <div class="item"> 
          <img class="second-slide" src="././img/Carousel_img/Jimmy_Lannon_22.jpg" alt="Second slide"> 
           <div class="container"> 
           </div> 
         </div> 
         <div class="item"> 
          <img class="third-slide" src="././img/Carousel_img/Jimmy_Lannon_23.jpg" alt="Third slide"> 
           <div class="container"> 
           </div> 
         </div> 
        </div> 

        <a class="left carousel-control" href="#carouSel" role="button" data-slide="prev" id="preV" > 
         <img class="left-chevron" src="././img/left_chevron.png" aria-hidden="true"/> 
        </a> 
        <a class="right carousel-control" href="#carouSel" role="button" data-slide="next" id="nexT" > 
         <img class="right-chevron" src="././img/right_chevron.png" aria-hidden="true"/> 
        </a> 

        <div class="artist-name"> 
         <h2>JIMMY LANNON</h2> 
        </div> 
       </div><!-- /.carousel --> 

Aşağıdaki JQuery kodu vardır:

$(document).click(function(e) { 
    if(e.target.id !==('#carouSel')) { 
     $(".carousel").hide(); 
    } 
}); 

Bu işe yaramıyor gibi görünmüyor - ne isterim ki atlı karıncaya sadece onun dışına tıkladığımda gizlenir, ancak sadece bir yere tıklarsam gizlenir.

+0

'return false;' after '$ (". Carousel ") ifadesini ekleyin. ' – cbertelegni

cevap

1

Ben genellikle böyle bir şey nasıl idare olduğunu. Belgeyi değil, vücudu dinlediğinizden emin olmalısınız.

$('body').on('click', function(e) { 
    $('#carouSel').hide(); 
}); 

$('#carouSel').on('click', function(e) { 
    e.stopPropagation(); 
}); 

anahtar e.stopPropagation() kullanarak atlıkarınca tıklama olayın baloncuklanmasını durdurmaktır; Bu şekilde, vücut elemanı tıklama dinleyicisine asla ulaşamaz. Alternatif çünkü resim etiketi kimliği için değer olabilir sadece hedef için değerinin denetleniyor anda, Carousel için üst kimliği kontrol etmektir

+0

Bu, karusel kumandalarının çalışmayı durdurması dışında harika mı? Atlıkarınca hala çalıştığından emin olmanın bir yolu var mı? – Davtho1983

+0

@ Davtho1983 sadece her kontrole doğrudan dinleyici eklemeniz gerekir. Etkinlik temsilcisi eklemeyi deniyorsanız, stopPropagation ile düzgün çalışmaz – tetz2442

0

Böyle vücuda dinleyici tıklayın takmak gerekir:

İşte
$('body').click(function(e) { 
    if(e.target.id !==('#carouSel')) { 
     $(".carousel").hide(); 
    } 
}); 
1

vb

 $(document).ready(function(){ 
        $('body').click(function(e) { 
         if($(e.target).parents('#carouSel').length == 0){ 
          $(".carousel").hide(); 
         } 
        }); 

        }); 
0

Yuo gerekir stop prapagate olayı için false döndür.

$(document).click(function(e) { 
if(e.target.id !==('#carouSel')) { 
    $(".carousel").hide(); 
    return false; 
} 
İlgili konular