[英](dart) I want two different onclick function to trigger depending if the radio button is checked or not upon clicking. How do I do that?
[英]How to change the onclick function value upon clicking a button
我已经尝试寻找这个问题的答案,似乎找不到一个特定的。
我的网站有一个按钮,如下所示:
<input class="btn btn-success" onclick="w.start()" type="button" value="Start" id='start' />
点击后我希望它改为“停止”,我希望onclick函数更改为onclick="w.stop()"
而不是w.start()
,我希望类更改为从btn-success
到btn-danger
(bootstrap)
我可以使用这个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功能:)
关于如何以不同方式处理问题,您有很多好的建议 - 但没有回答您关于如何更改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' />
我认为最简单的方法是从两个按钮开始,一个叫做start,一个叫stop,最初是隐藏的。
在你的开始功能添加
$('#start').hide();
$('#stop').show();
然后,您的旧按钮及其名称和功能将消失,并显示具有正确名称和正确功能的新按钮。
不要改变它调用的函数,而是使用“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
}
}
$(function(){$('#start').click(function() {
if($(this).val() == "Start"){
$(this).val("Stop");
play_int();
} else {
$(this).val("Start");
play_pause();
}
});
只需使用一个事件处理程序 我会使用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
}
});
});
为什么不在每次单击按钮时调用切换功能并让它处理条件。
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')
}
}
<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;
}
});
});
这是一个没有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;
};
}());
我看了一下你的回答,找到了一个最适合我的解决方案:
$(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的函数(这是一个计时器应用程序):)
随意给我反馈我的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.