无法配置如何在自定义jQuery插件中使用函数

时间:2017-02-22 17:23:35

标签: jquery

我正在尝试两个写一个jquery插件来跟踪进入视图的框,我无法弄清楚如何将UI值传递给我的插件以及如何在插件中使用topIn()

基本上这个插件意味着创建一个可在客户端重用的空回调函数boxTopIn

(function($) {
  $.fn.boxInView = function(options) {
    var settings = {
      boxTopIn: null
    };

    var options = $.extend(settings, options);

    function topIn(elem) {
      $(window).scroll(function() {
        var screenBot = $(window).height();
        if (($(window).scrollTop() + screenBot) > elemTop) {
          if ($.isFunction(options.onComplete)) {
            options.onComplete.call();
          }
          options.boxTopIn.call();
        }
      });
    }
  };
})(jQuery);

$('#c').boxInView({
  boxTopIn: function() {
    console.log('Box in View');
  }
});

1 个答案:

答案 0 :(得分:1)

您永远不会在topIn内调用$.fn.boxInView功能。在定义topIn函数后尝试添加此行:

topIn(this);

此时this的值为$('#c'),因此应该有效。