我有a
个ID为#searchBoxPop2
的链接。点击后,我想触发#searchBoxPop2.toggle
功能。我的问题是我必须在链接上单击两次才能触发切换。你能帮助这个脏脚本吗?非常感谢
$('#searchBoxPop2').live('click', function () {
if (!$('.header-wrapper-home').length) {
$('div.right-block').show();
$('#searchBoxPop2').toggle(
function () {
$('.detail-page-content').animate({
marginTop: "+=290px"
}, 800)
},
function () {
$('.detail-page-content').animate({
marginTop: "0px"
}, 800);
});
}
if ($('.header-wrapper-home').length) {
$('.header-wrapper-home').slideToggle('slow');
}
});
如果您希望我解释其余代码以及我将在detial中做什么,请告诉我。
答案 0 :(得分:1)
正如我在评论中所说,toggle event function在jQuery 1.9中已被弃用。 因此,您需要使用自己的方法来交替调用。起初我很生气,没有内置替代品,但这种方法更简洁。特别是因为一旦格式化了,就很容易复制到任何其他事件调用。
这是我刚写的一个快速而又脏的回调函数。可能有更好的方法来实现这一目标,但这是一个很好的起点:
function () {
var number = 2; // the number of events you toggle through
if (! window.toggle_counter )
window.toggle_counter = 0;
switch (window.toggle_counter) {
case 0:
// do some things
break;
case 1:
// do other things
break;
// etc ..
}
window.toggle_counter = (window.toggle_counter + 1) % number;
}
请注意window.variable_name是全局范围,因此要小心冲突。