Что альтернатива использованию после удаления jQuery 1.9.toggle(function, function)?
Привет, я пытаюсь создать что-то, что будет чередоваться с сокращением и ростом на каждом клике, но я использую jQuery 1.9
для своего сайта. функция .toggle(function,function)
была удалена из jQuery 1.9
, поэтому я не уверен, что я должен использовать вместо этого.
Любая помощь будет большой.
Спасибо
jsfiddle (использует старый код, версия jquery 1.8): http://jsfiddle.net/TNAC6/
new jsfiddle (jquery 1.9): http://jsfiddle.net/TNAC6/1/
Вот мой код, который я пытаюсь сделать. В основном то, что я переключаю, - это круг div.
(function($){
$.fn.createToggle = function(size) {
var ele = $(this);
var oldSize = ele.width();
console.log("creating new toggle on element: " + ele + " old: " + oldSize + " new: " + size );
console.log("its content is" + ele.children(".content"));
var growfn = function() {
$(this).stop().animate({
'width': size+'px',
'height': size+'px',
'margin-left': '-'+(size/2)+'px',
'margin-top': '-'+(size/2)+'px'
}, 500);
$(this).children(".content").toggle();
};
var shrinkfn = function() {
$(this).stop().animate({
'width': oldSize+'px',
'height': oldSize+'px',
'margin-left': '-'+(oldSize/2)+'px',
'margin-top': '-'+(oldSize/2)+'px'
}, 500);
$(this).children(".content").toggle();
};
ele.click(function() {
//insert code to toggle stuff
});
};
})(jQuery);
$(".home").createToggle(500);
и css:
.circleBase {
-webkit-border-radius: 999px;
-moz-border-radius: 999px;
border-radius: 999px;
behavior: url(PIE.htc);
}
.home {
width: 200px;
height: 200px;
background: #FF5032;
position: absolute;
top: 300px;
left: 300px;
margin-left: -100px;
margin-top: -100px;
}
.title {
position: relative;
padding-top: 10%;
text-align: center;
font-weight: bold;
font-size: 24px;
}
.content {
text-align: center;
display: none;
}
и html:
<div class="circleBase home">
<p class="title">Glen Takahashi<p>
<p class="content">THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT</p>
</div>
Ответы
Ответ 1
С двумя состояниями вы можете просто поддерживать текущее состояние переключения как логическое (я использовал clickState
). Если вы хотите иметь несколько состояний, вы можете продолжить добавление 1 к счету состояния, а затем проверить модуль общего счета, чтобы определить, какая функция должна срабатывать в зависимости от состояния.
Я немного обновил ваш код, так как ele
на самом деле является объектом jQuery, с которым вы хотите работать:
http://jsfiddle.net/TNAC6/2/
Ответ 2
$(document).ready(function() {
var flag=0;
$('selector').on('click', function(){
var menu = $("element_to_toggle");
if(flag==0){
menu.text("click one");
flag=1;
return;
}
else if(flag==1){
menu.text("click two");
flag=0;
return;
}
});
});