我有一个函数,调用时会加载外部css文件。该文件为视障人士提供了高对比度的网站版本。单击图像按钮时,我可以调用此函数。
现在我需要的是能够在第二次点击相同的按钮时重新加载页面。这种重新加载有效地删除了包含的css,并使网站恢复正常。
我还没有找到任何代码可以让我点击一次图像按钮来调用一个功能,然后再次点击同一个图像按钮来执行另一个动作。
我之前试过问这个问题,但被告知我没有问过一个问题。我希望上述内容清楚,请询问您是否需要进一步澄清。
答案 0 :(得分:1)
我认为你可以做这样的事情。
<img src= "..." onclick ="Mymethod();" alt="Imagename"/>
var IsCalledOnce = false;
function Mymethod()
{
if(IsCalledOnce)
{
//do something
}else
{
//do something
}
IsCalledOnce = true;
}
如果第一次没有刷新,您可以将值保存在全局变量范围内,并在所有其他时间刷新。
如果你想持久保存那个值 您可以使用以下任何一种
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>
注意:“标志”可以更改。