我的代码如下:
<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 :(得分: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 Delegate方法触发此点击
答案 1 :(得分: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>