0

是否可以在同一个元素上创建一个 onClick 处理程序但有两个其他调用?

我是说:

当我单击按钮TRUE时会出现警报,当我再次单击它时,FALSE应该会出现文本警报,但是当我再次单击它时,它的行为应该与第一次单击时相同,所以它应该显示警报说TRUE, 再一次。

这可能(如果是的话 - 如何)用 jQuery 做吗?

4

5 回答 5

1

你所描述的是一个经典的切换。

你的 JavaScript 看起来像这样:

var toggle = false;
$(document).ready(function(){
    $("#clickme").click(function(){
        toggle = !toggle;
        alert(toggle);
    }); 
});​

我在此链接上准备了一个有效的 JSFIDDLE 示例: 示例

于 2012-09-14T20:30:41.317 回答
0
var flag = true;
$('#button').on('click', function() {
  if( flag ) {
    alert('TRUE');
  } else {
    alert('FLASE');
  }
  flag = !flag;
});

演示

笔记

将所有 jQuery 代码包装在$(document).ready()函数中。

于 2012-09-14T20:27:44.233 回答
0

你可以试试这个方法

​$(function() {
    var i =0;
    $('#btn1').on('click' , function() {
        if( i%2 == 0){
           alert(' TRUE !!');
        } 
        else{
           alert(' FALSE !!');
        }  
        i++;        
    });
});​

工作小提琴

于 2012-09-14T20:42:52.820 回答
0

这是使用 div 的一种方法

<button id="clicker">Click Me</button>
<div id="true" style="display: none;">True!</div>
<div id="false" style="display: none;" class="firstTime">False!</div>​

准备好内部文件:

​$("#clicker").click(function(){
    if ($("#false").hasClass("firstTime")){
        $("#false").removeClass("firstTime");
        $("#true").show();
    } else {
        $("#true").toggle();
        $("#false").toggle();
    }
});​​​​​​​

例子

于 2012-09-14T21:00:22.043 回答
0

找到了这个:

$('#my-element').toggle(function(){
     alert("true");
}, function(){
     alert("false");
});
于 2012-09-14T21:01:23.310 回答