2011-03-23 37 views
0

我正在經歷一個奇怪和令人沮喪的情況,我似乎無法跟蹤它的起源。preventDefault()並返回false;不工作一些jCarousellite <a>元素

在頁面上,我有jCarousellite滾動數字<li>項目。該列表由查詢生成,然後通過循環輸出到頁面。在列表項目內,所有內容都包含在<a></a>標記中。

旋轉木馬的工作原理應該是這樣。現在,我只有2個項目返回查詢,他們滾動過去沒有問題。

奇怪的是,當列表中的第一個項目循環回去時,忽略了preventDefault()return false並點擊了href中的頁面。更奇怪的是,它只發生在第一次點擊。當你點擊後退按鈕並返回到頁面並再次單擊它時,它就像預期的那樣起作用,直到它重新循環時纔會發生任何事情。

這臺機器的鬼在哪裏?我沒有得到任何錯誤的螢火......

下面的代碼...

<div id="scroller"> 
    <div class="slideshow"> 
     <ul> 
     <cfloop query="qScrollers"> 
      <li> 
      <cfset ref = "product.cfm?pid=" & #qScrollers.link#> 
      <cfoutput><a href="#ref#" class="specials" title="#qScrollers.title#" ></cfoutput> 
      <p><cfoutput>#qScrollers.line1#</cfoutput></p> 
      <h1><cfoutput>#qScrollers.line2#</cfoutput></h1> 
      <p><cfoutput>#qScrollers.line3#</cfoutput></p> 
      <h2><cfoutput>#qScrollers.line4#</cfoutput></h2> 
      </a> </li> 
     </cfloop> 
     </ul> 
    </div> 
    </div> 

而且,這裏是我的$(document).ready()功能

$('.slideshow ul li a').click(function(e){ 
     e.preventDefault(); 
    }); 

//I've tried this too...// 
/*$('.slideshow ul li a').click(function(){ 
return false; 
    });*/ 

$(function() { 
     $(".slideshow").jCarouselLite({ 
      vertical: false, 
      visible: 1, 
      auto:2500, 
      speed:400, 
      hoverPause:true 
     }); 
    }); 

回答

1

@Ofeargall裏面住的代碼:嘗試 -

$(function() { 
    $(".slideshow").jCarouselLite({ 
     vertical: false, 
     visible: 1, 
     auto:2500, 
     speed:400, 
     hoverPause:true 
    }); 

    $('a.specials').click(function(e) { 
     e.preventDefault(); 
    }); 
}); 
+0

這似乎是伎倆!但爲什麼?函數外部的'e.preventDefault();不應該取代並消除任何'a.specials'上的點擊? – Ofeargall 2011-03-23 18:46:34

相關問題