现在点击切换已被弃用,我们该怎么办?

时间:2013-06-18 11:04:54

标签: jquery click toggle scrolltop

我正在尝试解决我们现在所做的事情,单击切换已被弃用?

如果你点击.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

3 个答案:

答案 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'));
});

FIDDLE

答案 1 :(得分:0)

您可以使用变量来设置状态,简化示例:

var active = false;

$('.wwd-content-container').click(function(e){
    if(!active){
        alert("First click");
        active = true;
    }else{
        alert("Second Click");
        active = false;
    }
});

LIVING DEMO

使用您的代码:

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);
  }
);