我有以下代码:

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


这会调用ajax调用。在第一个电话上。如果返回的结果为true,则在第二次通话时,我想在提醒框中说您只能投票一次。

<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中不工作。

最佳答案

这样的事情怎么样:

<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>

关于javascript - 第二次点击后发出警报,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11045825/

10-11 05:11