我只有最近才开始使用jQuery,因此任何其他指导将始终得到赞赏。如何将按钮文本更改为等待,检查内容更改,然后用jQuery重置按钮文本
我正在尝试向我的网站添加一些漂亮的UI功能,特别是要将单击的按钮文本更改为“等待”以显示该网站正在执行某些操作。如果按钮调用一个页面加载,它会说“等待”,直到下一页加载 - 没问题...但有时一个按钮可能会调用一个弹出窗口模式,用户可以取消并返回页面。 因为用户可以返回,所以我需要检查一个弹出模式是否在点击按钮后出现,如果是这样的话,那么改变按钮文本。
此代码适用于我(有点),但当我第二次单击该按钮时,该按钮更改为“等待...”,但不会变回。
这里是一个的jsfiddle试图进一步解释:(恐怕关闭未在小提琴要么使工作我不完全能告诉你) http://jsfiddle.net/BU3SW/3/
这是我的按钮:
<a class="button" href="#">Create</a>
而且我的jQuery:
$('.button').on('click', function() {
var $this = $(this),
v = $this.html(),
s = 'go';
//create a function to reset the text
function fix() {
$this.html(v);
s = 'stop';
}
//check we are not clicking on green button
if (!$this.hasClass('green')) {
//change the text to wait...
$this.html('wait...');
//we will use a setInterval to keep checking every second
//but only if "s" is still 'go' which means we are still waiting.
if (s === 'go') {
var intervalId = setInterval(function() {
if ($('.modalWrapper').html() !== '') {
clearInterval(intervalId);
fix();
}
}, 1000);
}
}
});
预先感谢您。
亲切的问候, 请问。
在你的真实情况,你有什么事都在等待?通常在jQuery中有回调可以使用,比使用'setInterval'更清洁。 –
我现在的代码只有一个真正的问题,那就是当你点击一个ajax按钮时,你可能需要等待3,5,10秒才能显示HTML部分。在此期间,最终用户可能不知道发生了任何事情。为了避免当模式被取消时不得不重新加载整个页面,我只想做一些事情来切换文本,但只有一次模式在屏幕上。 – wf4