所以我试图这样做,以便一旦点击一个元素,点击功能将无法工作,直到我的$.post
完成。
<div id="textbox_item">Click me</div>
这就是我现在所拥有的,但它不起作用。我假设.prop('disabled', true)
不适用于div
元素。谁能帮助我?
$("#textbox_item").click(function() {
//don't let anyone click .textbox_item until $.post is complete
$("#textbox_item").prop('disabled', true).text("Doing something..");
$.post("/action", { item: "123" }).done(function( data ) {
$("#textbox_item").prop('disabled', false).text("Click me");
});
});
答案 0 :(得分:1)
考虑设置并检查.data()
是否有“禁用”数据属性。
$(".textbox_item").click(function() {
//don't do anything if #textbox_item has been disabled
if($("#textbox_item").data('disabled')) { return false; }
//don't let anyone click .textbox_item until $.post is complete
$("#textbox_item").data('disabled', true).text("Doing something..");
$.post("/action", { item: "123" }).done(function( data ) {
$("#textbox_item").data('disabled', false).text("Click me");
});
});
我还注意到你似乎在混合ID和类选择器 - 我不知道这是否是故意的,但我建议仔细检查以确保你知道你正在禁用并点击。< / p>
答案 1 :(得分:0)
这里有两个问题:
Disable
属性不适用于div。Click me
div有一个班级textbox_item
,但您的电话$("#textbox_item")
正在寻找textbox_item
作为内容而不是班级的内容。每次要引用此元素时都应使用$(".textbox_item")
。<强> HTML 强>
<button class="textbox_item">Click me</button>
<强> JS 强>
$(".textbox_item").click(function()
$(this).prop('disabled', true);
$.post("/action", { item: "123" }).done(function( data ) {
$(".textbox_item").prop('disabled', false);
});
});
答案 2 :(得分:0)
为什么不专门为此使用jquery库提供的函数?
button.one('click', function() {
//on ajax success
Button.one('click', func)
})