2012-06-15 156 views
0

我有下面的代碼:警報後第二次點擊

<a href="#" id="@item.Id" name="vote" ><img src="/Content/images/021.png" style="float:left" alt="" /></a> 

其調用Ajax調用。在第一次通話。如果退貨是真的,那麼在第二次電話中,我想讓一個警告框表示您只能投票一次。

<script type="text/javascript"> 
    $(function() { 
     $("div.slidera_button a").click(function (e) { 
      var item = $(this); 
      e.preventDefault(); 
      $.get('@Url.Action("VoteAjax","Home")', { id: item.attr("id") }, function (response) { 
       if (response.vote == "false") { 
        alert("foo."); 
       } else { 
        //something 
       } 
      }); 
     }) 
    }); 
</script> 

這個作品,如果我點擊按鈕,然後刷新頁面,但它不工作,如果我嘗試點擊兩次。

我想要用戶能夠點擊多次,只有在第一次之後,他們得到一個彈出窗口。

爲什麼這不起作用?

我該如何解決它?

編輯:在FF中工作..不工作在IE中。

回答

0

怎麼是這樣的:

<style type="text/css"> 
a.disabled { 
    opacity: 0.5; 
    /* whatever other styles you want */ 
} 
</style> 

<script type="text/javascript"> 
    $(function() { 
     $.ajaxSetup({ cache: false }); 
     $("div.slidera_button a").click(function (e) { 
      var item = $(this); 
      if (item.hasClass("disabled")) { 
       // alert when they vote 
       // you'll need to handle some way to add this 
       // server side to account for page reload, yes? 
       alert('You may only vote once'); 
      } 
      $.get('@Url.Action("VoteAjax", "Home")' 
       , { id: item.attr("id") } 
       , function (response) { 
        // if this returns successfully, you voted. 
        item.addClass('disabled'); 
       } 
      }); 
      return false; 
     }) 
    }); 
</script> 
+0

發生了什麼事情,在第二次點擊時,它不會發出ajax調用,但仍然有相同的迴應,我從第一次點擊得到。 – DarthVader

+0

和那在IE瀏覽器中爲FF工作正常 – DarthVader

+0

$ .ajaxSetup({cache:false});這是做到了,如果你將它添加爲答案我會接受。感謝你的努力。 – DarthVader

0

使用該腳本

<script type="text/javascript"> 
    $(function() { 
     $("div.slidera_button a").live('click',function (e) { 
      var item = $(this); 
      e.preventDefault(); 
      $.get('@Url.Action("VoteAjax","Home")', { id: item.attr("id") }, function (response) { 
       if (response.vote == "false") { 
        alert("foo."); 
       } else { 
        //something 
       } 
      }); 
     }) 
    }); 
</script> 

或者JQuery的委託方法來觸發此點擊

+0

發生的事是什麼,在第二次點擊,它我沒有做出ajax調用,但仍然有同樣的反應,我從第一次點擊獲得。 – DarthVader

+0

.live('click'.... did not help – DarthVader

+0

嘗試在ajax請求後編寫e.preventDefault()函數*不確定它會起作用 – Mayuresh