2013-10-02 185 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; 
     } 
    }); 


    });