2011-03-23 15 views
0

私は奇妙でイライラしたシナリオを経験しており、その原因を追跡できないようです。preventDefault()とfalseを返します。 jCarousellite <a>要素

私はjCarouselliteスクロール番号<li>項目があります。リストはクエリから生成され、ループでページに出力されます。リスト項目の中には、すべてが<a></a>タグで囲まれています。

カルーセルはすべきように機能します。今、私は2つのアイテムがクエリで返され、それらは問題なく過去にスクロールします。

奇妙なことに、リストの最初の項目が返されるときは、preventDefault()またはreturn falseを無視して、hrefのページをクリックします。さらに奇妙なことに、最初のクリックでのみ発生します。戻るボタンをクリックしてページに戻り、もう一度クリックすると、予期された意味で動作します。もちろん、それが新しいサイクルに戻るまでは何も起こりません。

このマシンのゴーストはどこにありますか? I放火犯にすべてのエラーを取得していないよ...

ここでのコードだ...

<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

関連する問題