2013-12-21 28 views
-1

在下面的代碼我只能夠點擊任何裝載機元素<a></a>從第二顯示以下HTML元素的點擊它沒有顯示任何東西。所有的作品只是第一次,而不是第二次點擊。任何人都可以找我嗎?謝謝。jQuery的唯一一次點擊

<li><a id="OVERALL_VALUE" href="javascript:void(0)" onclick="setTopDeals('OVERALL_VALUE')" class="topdeal">Top Deals</a></li> 
        <li><a id="PRICE" href="javascript:void(0)" onclick="setTopDeals('PRICE')" class="price">Price</a></li> 
        <li><a id="QUALITY" href="javascript:void(0)" onclick="setTopDeals('QUALITY')" class="quality">Star Rating</a></li> 


        <li><a id="list" href="javascript:void(0)" class="list">List View</a></li> 
        <li><a id="grid" href="javascript:void(0)" class="gallery">Gallery</a></li> 
        <li><a id="map" href="javascript:void(0)" class="map">Map View</a></li> 

顯示裝載機

<a id="ajaxload_more3" style="display:none; width:200px; height:80px; border:1px solid #000; opacity:0.8; border-radius:10px; padding-top:20px; padding-bottom:25px; position:fixed; top:50%; left:50%; z-index:1000; text-align:center; background-color:#997CE6;"><table align="center"><tr height="50"><td><img src="images/ajaxload.gif" height="50" width="50" /></td></tr><tr height="35"><td><span style="font-size:20px; color:#FFF;">Loading</span></td></tr></table></a> 

腳本

<script type="text/javascript"> 
     $("#OVERALL_VALUE").click(function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
     $("#PRICE").click(function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
     $("#QUALITY").click(function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
     $("#list").click(function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
     $("#grid").click(function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
     $("#map").click(function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
     </script> 
+0

如果你想要的是顯示「加載」消息,當一個Ajax請求是活動的,檢查出[.ajaxStart()](HTTP後添加自定義的邏輯做什麼: //api.jquery.com/ajaxstart/)和[.ajaxStop()](http://api.jquery.com/ajaxStop/)。 – JJJ

回答

1

天哪,你應該首先考慮Don't repeat yourself。所有正在做同樣的操作,那麼爲什麼單獨的選擇器?而是使用class或直接元素選擇

$("li").on('click', 'a', function() { 
      $("#ajaxload_more3").show("slow"); 
      $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
     }); 
0

嘗試添加「#」代替「的javascript:無效(0)」既然你加載動態DOM元素,否則只是刪除HREF屬性

1

(AFTER載入JavaScript)。點擊事件不會綁定到新的附加元素..

在你必須使用「開」或「實時」結合這樣的情況。住綁定因此被棄用我建議你「的」結合使用...

這裏是你的Javascript運行的代碼片斷替代..試試吧..

<script type="text/javascript"> 
    $("body").on("click", "#OVERALL_VALUE", function() { 
     $("#ajaxload_more3").show("slow"); 
     $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
    }); 
    $("body").on("click, "#PRICE", function() { 
     $("#ajaxload_more3").show("slow"); 
     $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
    }); 
    //CONVERT ALL THE ELEMENTS JUST LIKE THAT 
    </script> 

我希望這有助於。謝謝!

更好的辦法

而另外一個成員的建議。不要重複自己..

相反。在這個轉換你的HTML:

    <li><a id="PRICE" class="ajaxLoadIt" href="javascript:void(0)" onclick="setTopDeals('PRICE')" class="price">Price</a></li> 
       <li><a id="QUALITY" class="ajaxLoadIt" href="javascript:void(0)" onclick="setTopDeals('QUALITY')" class="quality">Star Rating</a></li> 


       <li><a id="list" class="ajaxLoadIt" href="javascript:void(0)" class="list">List View</a></li> 
       <li><a id="grid"class="ajaxLoadIt" href="javascript:void(0)" class="gallery">Gallery</a></li> 
       <li><a id="map" class="ajaxLoadIt"" href="javascript:void(0)" class="map">Map View</a></li> 

和腳本:

<script type="text/javascript"> 
$("body").on("click", ".ajaxLoadIt", function() { 
    $("#ajaxload_more3").show("slow"); 
    $("#ajaxload_more3").delay(6000).fadeOut("slow"); 
}); 

//CONVERT ALL THE ELEMENTS JUST LIKE THAT 
</script> 
+2

''文件''應該'文件' – Satpal

+0

謝謝隊友..剛剛編輯! –

+0

我試過你的代碼,這個工作在http://jsfiddle.net/gBsZG/,但仍然不起作用在www.ther8.com – lock

0

你看不到它了,因爲在fadeOut功能的DOM元素的displaynone結束。你應該淡出過程已經完成