1
 (function($) {
     $.fn.extend({
     clock: function(options) {
     var options = $.extend(defaults, options);
        .......
        .......
        return this.each(function() {
         var prev = function() {
                console.log("hello world!");
            alert('getweather');
            };
            $('#left').click(function() {alert(342);});

      });
})(jQuery); 

如何从下面的代码中调用插件函数 prev 和 $('#left')

 $.fn.clock().prev(); //doesn't work

 $.fn.clock('#left');   //doesn't work

提前致谢

4

2 回答 2

0

根据提供的代码,您不能。是不可能的。该函数被分配给局部变量prev,它不会以任何方式暴露在局部范围之外。

如果你想让它可以访问,你需要将函数存储在某个地方,这样它就不会超出范围,然后提供一些接口,通常通过类似$('my-element').clock('prev'). jQuery Plugin Authoring解释了这方面的最佳实践,特别是在Plugin Methods下。

于 2012-12-02T22:22:56.550 回答
0

这些是anonymous功能。即使它们在您的范围内,您也无法调用它们。

一种解决方法是触发click事件#left

$('#left').trigger('click');
于 2012-12-02T22:23:56.920 回答