2017-03-13 58 views
4

點擊body後可以調用一個函數然後在第二次點擊後調用不同的函數嗎?在身上點擊運行一個功能接一個點擊運行另一個功能

我試過,然後停下來,有什麼想法?

$("html, body").one("click",function() { 
    // to something 
} 
+0

您是否嘗試創建點擊一次和雙擊功能? – TheMiddleMan

+0

https://api.jquery.com/dblclick/ –

+0

我想單擊正文後更改背景圖片,然後再次單擊更改背景後,啓動不同的功能 – Raivis

回答

4

你可以嘗試這樣的事:

var clicks = 0; 
$("html, body").on("click",function() { 
    if(clicks === 0){ 
     funcA(); 
    } 
    if(clicks > 1){ 
     funcB(); 
    } 
    clicks++; 
} 

funcAfunc

+1

你的答案中不能使用'.one()'。第一次點擊就會觸發,沒有其他事件會觸發,包括另一次點擊。考慮使用'.on()' – TheMiddleMan

+1

每個元素將執行一次。你的意思是.on? – PersyJack

+1

@TheMiddleMan Ooops ...非常感謝你CTRL + C,CTRL + V錯誤... – Christos

0

編輯:我改變了我的答案因你最新加入到你的問題。 看到這個片斷:

var myFunctions = []; 
 

 
myFunctions.push(function() { 
 
    $("body").css("background-color", "red"); 
 
}); 
 

 
myFunctions.push(function() { 
 
    $("body").css("background-color", "green"); 
 
}); 
 

 
$("html, body").click(function(){ 
 
    if(myFunctions.length > 0) myFunctions.shift()(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

謝謝,這對我有效! – Raivis

0

HTML的一部分:

<input type="button" value="Click Me" /> 

腳本部分:

$("input").one("click",function() { 
    alert("First Function"); 
    $("input").one("click",function() { 
    alert("Second Function"); 
    }); 
}); 

Demo

+0

我不明白在這種情況下使用輸入。在身體上添加事件監聽器是否更容易? – pzworks

+0

是的,你可以,只是爲了演示我添加輸入的演示。您可以添加任何選擇器來代替輸入。 –

相關問題