我正在尝试解决我们现在所做的事情,单击切换已被弃用?
如果你点击.wwd-content-container .wwd-content-each .wwd-extra-content-trigger
,它会向下滚动100px,如果你再次点击它会向上滚动100px。
$('.wwd-content-container .wwd-content-each .wwd-extra-content-trigger').click(function(e) {
var y = jQuery(window).scrollTop();
jQuery(window).scrollTop(y+100);
});
$('.wwd-content-container .wwd-content-each .wwd-extra-content-trigger').click(function(e) {
var y = jQuery(window).scrollTop();
jQuery(window).scrollTop(y-100);
});
有什么想法吗? 谢谢, [R
答案 0 :(得分:3)
您设置了一个带变量或data()
的标记以跟踪:
$('.wwd-content-container .wwd-content-each .wwd-extra-content-trigger').on('click', function (e) {
var y = $(window).scrollTop(),
scroll = !$(this).data('clicked') ? (y+100) : (y-100);
$(window).scrollTop(scroll);
$(this).data('clicked', !$(this).data('clicked'));
});
答案 1 :(得分:0)
您可以使用变量来设置状态,简化示例:
var active = false;
$('.wwd-content-container').click(function(e){
if(!active){
alert("First click");
active = true;
}else{
alert("Second Click");
active = false;
}
});
使用您的代码:
var active = false;
$('.wwd-content-container .wwd-content-each .wwd-extra-content-trigger').click(function(e){
if(!active){
var y = jQuery(window).scrollTop();
jQuery(window).scrollTop(y+100);
active = true;
}else{
var y = jQuery(window).scrollTop();
jQuery(window).scrollTop(y-100);
active = false;
}
});
答案 2 :(得分:0)
您可以像这样创建自己的替代品:
$.fn.toggleClick = function() {
var functions = arguments, iteration = 0;
return this.click(function() {
functions[iteration].apply(this, arguments);
iteration = (iteration + 1) % functions.length;
});
}
来源:http://forum.jquery.com/topic/beginner-function-toggle-deprecated-what-to-use-instead
然后你可以像这样使用它,提供任意数量的函数作为参数:
$('#mydiv').toggleClick(
function() { alert("do"); },
function() { alert("some"); },
function() { alert("stuff"); }
);
在你的情况下,你会这样做:
$('.wwd-content-container .wwd-content-each .wwd-extra-content-trigger').toggleClick(
function() {
var y = jQuery(window).scrollTop();
jQuery(window).scrollTop(y+100);
},
function() {
var y = jQuery(window).scrollTop();
jQuery(window).scrollTop(y-100);
}
);