通过 bootstrap 在 loading/resetting 之后更改按钮文本
changing a button text after loading/resetting by bootstrap
我正在尝试使用 bootstrap3.
创建喜欢/不喜欢的按钮
这是我的按钮
<button type="button" id="testBtn"
class="btn btn-success glyphicon glyphicon-thumbs-up"
data-loading-text=" ... " onclick="like()" >
4</button>
这是我的 JavaScript 函数的简化版本,没有 AJAX 调用:
function like(){
var btn = $('#testBtn');
btn.button('loading');
var current = parseInt(btn.text());
current++;
console.log(current);
btn.button('reset');
btn.text(current);
}
通常这很有效,每次点击按钮文本都会增加。
但是现在我正在使用 bootstrap,在重置按钮后它会保留旧文本,即使在 console.log(current);
中我看到一个新的递增文本。
我想因为我正在使用 bootstrap 按钮 loading/resetting 我必须做一些其他事情来更改按钮文本。
原因与该函数不在全局上下文中有关。您可以在这个答案 here.
上找到更多详细信息
基本上,建议是在 Document Ready 上进行绑定,而不是为此使用 onclick。
希望对您有所帮助!
'btn.text()
' 正在获取 data-loading-text
值,而不是 '4
'。所以我更新了我的答案,在 FIDDLE
中为你投票
HTML
<button type="button" id="testBtn" class="btn btn-success glyphicon glyphicon-thumbs-up" data-loading-text=" ... ">
4</button>
<button type="button" id="testBtnDown" class="btn btn-success glyphicon glyphicon-thumbs-down" data-loading-text=" ... ">
4</button>
JS
$('#testBtn').click(function () {
var cnt=4;
var btn = $(this);
btn.button('loading');
setTimeout(function () {
cnt++;
btn.button('reset');
btn.text(' ' + cnt);
}, 1000);
});
$('#testBtnDown').click(function () {
var cnt=4;
var btn = $(this);
btn.button('loading');
setTimeout(function () {
if (cnt > 0) {
cnt--;
}
btn.button('reset');
btn.text(' ' + cnt);
}, 1000);
});
我正在尝试使用 bootstrap3.
创建喜欢/不喜欢的按钮这是我的按钮
<button type="button" id="testBtn"
class="btn btn-success glyphicon glyphicon-thumbs-up"
data-loading-text=" ... " onclick="like()" >
4</button>
这是我的 JavaScript 函数的简化版本,没有 AJAX 调用:
function like(){
var btn = $('#testBtn');
btn.button('loading');
var current = parseInt(btn.text());
current++;
console.log(current);
btn.button('reset');
btn.text(current);
}
通常这很有效,每次点击按钮文本都会增加。
但是现在我正在使用 bootstrap,在重置按钮后它会保留旧文本,即使在 console.log(current);
中我看到一个新的递增文本。
我想因为我正在使用 bootstrap 按钮 loading/resetting 我必须做一些其他事情来更改按钮文本。
原因与该函数不在全局上下文中有关。您可以在这个答案 here.
上找到更多详细信息基本上,建议是在 Document Ready 上进行绑定,而不是为此使用 onclick。
希望对您有所帮助!
'btn.text()
' 正在获取 data-loading-text
值,而不是 '4
'。所以我更新了我的答案,在 FIDDLE
HTML
<button type="button" id="testBtn" class="btn btn-success glyphicon glyphicon-thumbs-up" data-loading-text=" ... ">
4</button>
<button type="button" id="testBtnDown" class="btn btn-success glyphicon glyphicon-thumbs-down" data-loading-text=" ... ">
4</button>
JS
$('#testBtn').click(function () {
var cnt=4;
var btn = $(this);
btn.button('loading');
setTimeout(function () {
cnt++;
btn.button('reset');
btn.text(' ' + cnt);
}, 1000);
});
$('#testBtnDown').click(function () {
var cnt=4;
var btn = $(this);
btn.button('loading');
setTimeout(function () {
if (cnt > 0) {
cnt--;
}
btn.button('reset');
btn.text(' ' + cnt);
}, 1000);
});