将 setTimeout 与 jquery 一起使用
Using setTimeout with jquery
我想在打开的箱子上设置一个计时器。我把这个放在我的按钮上
<input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success" onclick="unlockcase()" />
这是调用我的控制器并在 15 分钟后关闭案例的函数。
function unlockcase() {
setTimeout(function () {
var id = @Model.ID
$.ajax({
type: 'POST',
url: '/Case/UnlockCase',
data: 'id=' + id,
success: function () {
window.location.reload(true);
}
});
},15000);
};
它命中了函数和控制器,但它立即发生,计时器不工作。任何帮助将不胜感激。
首先把你的html
改成这个
<button type="button" class="btn btn-block alert-success" onclick="unlockcase()">Checkout</button>
那么你的javascript
可以如下
function unlockcase() {
setTimeout(function () {
var id = @Model.ID;
$.ajax({
type: 'POST',
url: '/Case/UnlockCase',
data: 'id=' + id,
success: function () {
window.location.reload(true);
}
});
}, 15 * 1000 * 60);
}
setTimeoout
中等待时间的单位是millisecond
所以15 * 1000
表示15秒,15 * 1000 * 60
表示15分钟
如果您使用 jQuery 为什么不在按钮上使用 .click()
事件。像这样:
HTML:
<input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success myButton" />
Javascript:
$('.myButton').click(function() {
var counter = 1;
var timer = setInterval(function(){
if(counter > 900000){ //If it passed 15 minutes.
//DO YOUR AJAX CALL
var id = @Model.ID;
$.ajax({
type: 'POST',
url: '/Case/UnlockCase',
data: 'id=' + id,
success: function () {
window.location.reload(true);
}
});
//Clear the loop
clearInterval(timer);
}
counter++;
}, 1000);
});
JSFiddle:http://jsfiddle.net/hoggen1o/
我想在打开的箱子上设置一个计时器。我把这个放在我的按钮上
<input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success" onclick="unlockcase()" />
这是调用我的控制器并在 15 分钟后关闭案例的函数。
function unlockcase() {
setTimeout(function () {
var id = @Model.ID
$.ajax({
type: 'POST',
url: '/Case/UnlockCase',
data: 'id=' + id,
success: function () {
window.location.reload(true);
}
});
},15000);
};
它命中了函数和控制器,但它立即发生,计时器不工作。任何帮助将不胜感激。
首先把你的html
改成这个
<button type="button" class="btn btn-block alert-success" onclick="unlockcase()">Checkout</button>
那么你的javascript
可以如下
function unlockcase() {
setTimeout(function () {
var id = @Model.ID;
$.ajax({
type: 'POST',
url: '/Case/UnlockCase',
data: 'id=' + id,
success: function () {
window.location.reload(true);
}
});
}, 15 * 1000 * 60);
}
setTimeoout
中等待时间的单位是millisecond
所以15 * 1000
表示15秒,15 * 1000 * 60
表示15分钟
如果您使用 jQuery 为什么不在按钮上使用 .click()
事件。像这样:
HTML:
<input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success myButton" />
Javascript:
$('.myButton').click(function() {
var counter = 1;
var timer = setInterval(function(){
if(counter > 900000){ //If it passed 15 minutes.
//DO YOUR AJAX CALL
var id = @Model.ID;
$.ajax({
type: 'POST',
url: '/Case/UnlockCase',
data: 'id=' + id,
success: function () {
window.location.reload(true);
}
});
//Clear the loop
clearInterval(timer);
}
counter++;
}, 1000);
});
JSFiddle:http://jsfiddle.net/hoggen1o/