0

在我的插件中,我有一个运行点击事件并加载 ajax 的方法

loadAjax: function () {


    self = this;
    $('.loadmore').click(function (event) {

           // load ajax and do some stuff
    });
}

我想切换到

$( window ).scroll(function(event) {

       // load ajax and do some stuff
});

但无需再次重写 ajax 行。该插件还有一个加载操作选项,我可以从点击切换到滚动。

在不复制ajax代码的情况下这是否可能?

谢谢!

4

2 回答 2

1

您可以尝试调用对象的不同方法(主要思想):

var customCall = {
  click: function(){
    $('.loadmore').click(function (event) {

       // load ajax and do some stuff
    });
  },
  scroll: function(){
    $( window ).scroll(function(event) {

     // load ajax and do some stuff
    });
  }
}, choice;

choice = 'click'; // loadAjax call click function

loadAjax: function () {
  self = this;
  customCall[choice]();
}

...

choice = 'scroll'; // loadAjax call scroll function
于 2013-09-23T22:18:25.957 回答
0

您可以使用 $(window).scroll() 事件来触发 $('.loadmore').click() 事件。

$(window).on('scroll',function(e){
    $('.loadmore').trigger('click');
});

尽管您需要注意触发此事件的频率。也许使用超时,或者确定窗口应该滚动多远,而不是在每个滚动事件上触发。

于 2013-09-23T21:48:43.653 回答