是这样,同一个js文件中 有两个不同的方法,这两个方法分别在不同的(function($) {})里。
怎么实现跨(function($) {})调用另一个方法呢?
求不吝赐教!
我之前用easyui也遇到过这种问题,解决办法:$("#id").datagrid({fit: true});表示datagrid适应父容器大小
参考这个:
[code="java"]http://www.iteye.com/problems/88088[/code]
非搞那么麻烦干嘛 把方法提取出来
这是分别在两个匿名函数里的局部变量,大哥。怎么可能在函数外面访问到局部变量
为什么不在一个js文件里只定义一个这样的匿名函数
如果一定要这么做,我们就得采用一些迂回的策略。
最简单也是最不推荐的做法就是把这两个函数定义成全局的。这里就不多解释了。
在不增加全局对象的前提下,还是有办法解决这个问题的
方法一:使用自定义事件,在定义方法的匿名函数里创建一个自定义事件,在另一个匿名函数里要使用那个方法时就触发这个自定义事件。这么做的要求就是两个匿名函数里都要持有绑定自定义事件的对象的引用。
方法二:使用Deffered对象或Callbacks对象。这么做的要求就是两个匿名函数里都要持有相同的deffered对象或callbacks对象。
方法三:借助Callbacks对象实现pub/sub模式,pub/sub作为jquery的插件存在。将匿名函数内定义的局部函数定义成主题订阅者,在需要调用这个函数的匿名函数内将调用那个函数的实参发布为主题。这样就实现了匿名函数间的交互。
上述三种方法都不简单,不过都可作为开发模式复用。一旦用过一次以后就会简单很多。