2013-05-05 3 views
1

У меня очень простая веб-страница. Вот мой Demo.Простой эффект onClick в jQuery

Рабочий стол: Когда я наводил курсор на круг, он расширяется.

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

+0

Спасибо. Что бы вы порекомендовали мне изменить? – michaelmcgurk

+0

Спасибо, сэр. Я довольно новичок в Javascript, как вы можете сказать. Сможете ли вы составить пример, используя мой код jsbin? – michaelmcgurk

1

Я хотел бы попробовать использовать JQuery тумблер: http://api.jquery.com/toggle-event/

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

Спасибо за ответ, Витаутас. Можете ли вы показать мне, используя мой код, как я это реализую? Должен ли я изменить свой HTML? – michaelmcgurk