我已经尝试过为此寻找答案,但似乎找不到具体的答案。
我的网站有一个按钮,如下所示:
<input class="btn btn-success" onclick="w.start()" type="button" value="Start" id='start' />
点击后我希望它更改为“停止”,我希望onclick功能更改为onclick="w.stop()"
而不是w.start()
,我希望课程从btn-success
更改为到btn-danger
(引导程序)
我可以使用此jQuery让名称改变:
$(function () {
$('#start').click(function () {
$(this).val() == "Start" ? play_int() : play_pause();
});
});
function play_int() {
$('#start').val("Stop");
// do start
}
function play_pause() {
$('#start').val("Start");
// do stop
}
但是如何让onclick函数和类更改?
特别是onclick功能:)
答案 0 :(得分:2)
您有很多关于如何以不同方式处理问题的好建议 - 但没有回答您关于如何更改onclick
的具体问题。在许多情况下,这是一项有用的能力 - 所以,即使你采取其他人的一般方法的建议,我也想回答你的具体问题。
这是我测试过并发现可以工作的代码:
<script>
function play_int() {
alert("play_int was executed");
$("#start").val("Stop");
$("#start").attr("onclick", "play_pause()");
// do start
}
function play_pause() {
alert("play_pause was executed");
$("#start").val("Start");
$("#start").attr("onclick", "play_int()");
// do stop
}
</script>
<input class="btn btn-success" onclick="play_int();" type="button" value="Start" id='start' />
答案 1 :(得分:0)
我认为最简单的方法就是从两个按钮开始,一个名为start,一个名为stop,最初是隐藏的。
在你的开始功能中添加
$('#start').hide();
$('#stop').show();
然后您的旧按钮及其名称和功能消失,并显示具有正确名称和正确功能的新按钮。
答案 2 :(得分:0)
不使用更改正在调用的函数,而是使用“if”语句。不像jquery那样熟悉jsery,js,但我觉得它会是这样的。
if($('#start').val = "start"){
function play_int() {
$('#start').val("Stop");
// do start
}
}
if($('#start').val = "stop"){
function play_pause() {
$('#start').val("Start");
// do stop
}
}
答案 3 :(得分:0)
$(function(){$('#start').click(function() {
if($(this).val() == "Start"){
$(this).val("Stop");
play_int();
} else {
$(this).val("Start");
play_pause();
}
});
答案 4 :(得分:0)
只需使用一个事件处理程序。我会使用jQuery来检测按钮上哪个类是活动的。然后,您可以执行适当的操作。如果使用此元素,则无需在元素中设置onclick。
$(function () {
$('#start').on('click', function() {
if($(this).is('.btn-success')){
$(this).removeClass('.btn-success').addClass('.btn-danger').val('Stop');
//Do Start
}else{
$(this).removeClass('.btn-danger').addClass('.btn-success').val('Start');
//Do Stop
}
});
});
答案 5 :(得分:0)
为什么不在每次单击按钮时调用切换功能并让它处理条件。
function toggleChange(event){
if($('#start').val()=="Stop";
$('#start').val("Start");
$('#start').addClass('newClass')
$('#start').removeClass('oldClass')
}
else{
$('#start').val("Stop");
$('#start').addClass('newClass')
$('#start').removeClass('oldClass')
}
}
答案 6 :(得分:0)
<input class="btn btn-success" onclick="w.start()" type="button" value="Start" id='btn' />
$(function () {
$('#btn').click(function () {
var opn=$(this).val();
switch(opn){
case 'start':
$(this).val("stop").removeClass('.btn-success').addClass('.btn-danger').click(w.stop);
break;
case 'stop':
$(this).val("start").removeClass('.btn-danger').addClass('.btn-success').click(w.start);
break;
}
});
});
答案 7 :(得分:0)
这是一个没有jquery的解决方案
HTML
<input class="btn-success" onclick="callme(this);" type="button" value="Start"/>
JAVASCRIPT
var callme = (function() {
var start = true;
return function(me) {
if(start) {
me.value = "Stop";
me.className = "btn-danger";
w.start();
} else {
me.value = "Start";
me.className = "btn-success";;
w.stop();
}
start = !start;
};
}());
答案 8 :(得分:0)
我查看了您的回复,找到了最适合我的解决方案:
$(function(){$('#start').click(function() {
$(this).val() == "Start" ? play_int() : play_pause();
});
});
function play_int() {
$('#start').val("Stop");
$('#start').addClass('btn-danger');
$('#start').removeClass('btn-success');
w.start();
}
function play_pause() {
$('#start').val("Start");
$('#start').addClass('btn-success');
$('#start').removeClass('btn-danger');
w.stop();
}
w.stop()和w.start()是启动计时器的另一个js的函数(这是用于计时器应用程序):)
随时向我提供有关我的解决方案的反馈。