单击一个功能按钮单击再次单击另一个功能

时间:2013-10-02 00:47:41

标签: jquery function

我有一个函数,调用时会加载外部css文件。该文件为视障人士提供了高对比度的网站版本。单击图像按钮时,我可以调用此函数。

现在我需要的是能够在第二次点击相同的按钮时重新加载页面。这种重新加载有效地删除了包含的css,并使网站恢复正常。

我还没有找到任何代码可以让我点击一次图像按钮来调用一个功能,然后再次点击同一个图像按钮来执行另一个动作。

我之前试过问这个问题,但被告知我没有问过一个问题。我希望上述内容清楚,请询问您是否需要进一步澄清。

7 个答案:

答案 0 :(得分:1)

我认为你可以做这样的事情。

<img src= "..." onclick ="Mymethod();" alt="Imagename"/>


var IsCalledOnce = false;

function Mymethod()
{
 if(IsCalledOnce)
{
  //do something
}else
{
 //do something
}

IsCalledOnce = true;
}

如果第一次没有刷新,您可以将值保存在全局变量范围内,并在所有其他时间刷新。

如果你想持久保存那个值 您可以使用以下任何一种

  

1。HTML5 web storage

     

2.Cookie

     

3.Hiddenfield

     

4.Database(以ajax调用保存)

答案 1 :(得分:1)

首先点击并创建一个全局变量$.clicked并存储 true 并加载CSS。

在你的函数中,你总是检查全局变量的值,然后定义从那里采取的动作。

请参阅:

$(document).ready(function(){
    $.clicked = false;

    $("#loadCSS").click(function(e){
        if ($.clicked){
            // action to be taken to remove the CSS loaded
            $.clicked = false;
        } else {
            // action to be taken to load the CSS
            $.clicked = true;
        }
    });
});

我希望它可以帮到你

答案 2 :(得分:0)

您可以设置全局变量:

jQuery(document).ready(function () {

    $('#test').click(function () {
        test();
    });

});

var calledonetime = false;

function test()
{
    if(calledonetime=== false)
    {
        calledonetime = true;
        alert('first time');
    }else
    {
        alert('second time');
    }

}

因此,当您第一次单击时,它将执行第一个操作,然后执行第二个操作。

这是exemple

答案 3 :(得分:0)

我为自己做了这件事:

function zo(f1, f2){
  this.n = 0;
  this.z = function(){
    if(this.n === 0){
      f1(); this.n = 1;
    }
    else{
      f2(); this.n = 0; 
    }
  }
}
var whatever = new zo(function(){/*do stuff*/}, function(){/*do stuff*/});

请记住您要在this的上下文中调用的活动中whatever的上下文。

Element.onclick = function(){
  whatever.z.call(whatever);
}

答案 4 :(得分:0)

<button id="button">click me</button>
<div id="thing">default</div>

function first() {
    $('#thing').html("first");
}

function second() {
    $('#thing').html("second");
}


$('#button').on("click", function () {
    first();
    $(this).on("click", function () {
        second();
    });
});

http://jsfiddle.net/stevemarvell/xxJBH/

如果您想在用户重新加载后记住状态,那么您希望将其存储在cookie或其他类似的内容中。

答案 5 :(得分:0)

试试这个

in html

<a><img id="test" src="temp5.jpg" /></a>

在.js

$(document).ready(function()
{
var action = 1;

    $("#test").click(function()
    {
    if ( action == 1 ) {
            $("#div2").css('display','block');
            action = 2;
        } else {
            $("#div3").css('display','block');
            action = 1;
        }
    });


    });

答案 6 :(得分:0)

这既简单又实用。

flag = true ;
function myFunction() {
document.getElementById("demo").innerHTML = flag ? "Second paragraph" : "First paragraph";
flag = !flag
}
<p id="demo">First paragraph</p>
<button onclick="myFunction()">click me</button>

注意:“标志”可以更改。