【问题标题】:jQuery Plugin Function returnjQuery插件函数返回
【发布时间】:2014-04-23 03:33:45
【问题描述】:

我有一个 jQuery 插件,它会返回一个函数来稍后调用它。 这是必要的,因为如果元素发生更改,则需要刷新插件。例如,您可以调用:

$('.test').test()

如果你改变了所有的 .test-elements,那么你可以用

刷新 jQuery 插件
$('.test').test().init()

但每次我调用$('.test').test().init() 时,该函数都会执行两次。你能告诉我为什么吗?

http://jsfiddle.net/WBE8Q/

【问题讨论】:

  • 因为test() 调用init()。然后你打电话给init()
  • 可能是因为刚才调用test()也调用了init(),所以再次调用init()就变成了两次,
  • 谢谢,但有什么解决方案?如果元素发生变化,我只想在 test() 中调用函数 init(),而不是整个插件。

标签: javascript jquery function plugins


【解决方案1】:

你在 test() 中调用 init(),所以行

$('.test').test().init();

意味着 init() 将被调用两次。 [除了第一次调用 test() 时调用的单次]。您正在返回函数指针,但从未调用它。如果您在 ready() 函数中这样做会怎样?

var func = $('.test').test(); 
setTimeout(function(){
    func.init();
},1000);

【讨论】:

  • 谢谢,很有帮助!
猜你喜欢
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2014-07-03
  • 2011-10-15
  • 1970-01-01
相关资源
最近更新 更多