2013-10-02 166 views
1

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

现在我需要的是能够重新加载页面时,再次单击相同的按钮。此重新加载有效地删除了包含的CSS,并返回该网站看起来正常。

我一直无法找到任何代码,允许我单击一次图像按钮来调用一个函数,然后再次单击同一图像按钮来执行另一个操作。

我曾试图问过这个问题,但被告知我没有问过问题。我希望上述内容很明确,请询问是否需要进一步澄清。

+0

更改点击处理程序中的点击处理程序? – stevemarvell

+2

重新加载后是否发生第二次点击....即按钮点击会导致重新加载? –

+0

应该没有重新加载 – stevemarvell

回答

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

1

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

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


var IsCalledOnce = false; 

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

IsCalledOnce = true; 
} 

如果第一次没有刷新,并且在所有其他时间刷新,则可以将该值保存在全局变量作用域中。

,如果你想坚持thatvalue更长 你可以使用任何的下列

1. HTML5 web storage

2.Cookie

3.Hiddenfield

4.Database (通过阿贾克斯调用保存)

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); 
} 
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或一些这样的状态。

0

您可以创建一个全局变量$.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; 
     } 
    }); 
}); 

我希望它可以帮助你

0

在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; 
     } 
    }); 


    });