2013-05-05 64 views
1

我有一個非常簡單的網頁。這是我的DemojQuery中簡單的onClick效果

桌面:當我將鼠標懸停在圓圈,它擴展。

的iPad:當我點擊了一圈,它擴展。

但是,是否有可能(在iPad上),當圓是在「擴大」的狀態,如果我再次點擊它時,它收縮?

我會如何使用我現有的代碼來做到這一點?

的Javascript:

$('.circle').on('touchstart',function(){}); 

的任何幫助,非常感謝。

回答

2
var events = "mouseover mouseout"; 
if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) { 
    events = "touchstart"; 
}; 

$('.circle').on(events,function(){ 
    if ($(this).hasClass("expanded")) { 
     // contract the circle 
     $(this).addClass("contracted").removeClass("expanded"); 
    } else { 
     // expand the circle 
     $(this).addClass("expanded").removeClass("contracted"); 
    }; 
}); 

現在將class contracted添加到您的所有圈子。

+0

這裏是我的修改代碼:http://jsbin.com/adacot/13/edit任何想法,爲什麼它沒有「契約」如果我點擊它何時打開? – michaelmcgurk 2013-05-05 19:37:20

+0

感謝您的支持。你會推薦什麼我改變這個? – michaelmcgurk 2013-05-05 19:40:56

+0

謝謝先生。你可能會說,我對Javascript相當陌生。你能用我的jsbin代碼組裝一個例子嗎? – michaelmcgurk 2013-05-05 19:49:44

1

我會嘗試使用jQuery切換:http://api.jquery.com/toggle-event/

$('.circle').toggle(function() { 
    $(this).addClass("expanded").removeClass("contracted"); 
}, function() { 
    $(this).removeClass("expanded").addClass("contracted"); 
}); 
+0

感謝回覆,Vytautas。你能告訴我用我的代碼怎麼實現這個嗎?我應該改變我的HTML嗎? – michaelmcgurk 2013-05-05 19:37:56