2
我在我的实际javascript项目中有一个非常奇怪的情况。我创建了一个自定义事件,把一个数组此事件数组参数来自参数
$.publish("merilon/TablesLoaded", getTables());
其认购本次活动的对象不与
$.subscribe("merilon/TablesLoaded", myfunc)
两个参数事件,并在功能MYFUNC数组获得。相反,它从阵列中的每个项目获取事件,然后根据下面的参数
所以我expectet是
myfunc(event, [obj1, obj2, obj3 ... objn]){...}
,但我得到
myfunc (event, obj1, obj2, obj3 ... objn){...}
我不想要一个解决办法。我需要的是了解为什么会发生这种情况,以及如何防止这种情况发生。任何人的想法?
$ .publish/$订阅似乎并没有成为本土的jQuery。你使用什么插件? Semms,有很多,它们的行为不一样...... – OcuS 2012-08-10 12:39:22
问题是,使用nettuts + pub/sub模型发送数组是不可能的。 $ .publish(“merilon/TablesLoaded”,array); 没有别的然后 $ .trigger( “merilion/TablesLoaded” 事件,阵列) ,当我们看 http://api.jquery.com/trigger/ 下,我们可以读到 .trigger (eventType [,extraParameters]) eventType包含JavaScript事件类型(如点击或提交)的字符串。 extraParameters传递给事件处理程序的附加参数。 – Lehnhard 2012-08-10 12:54:55
所以没有办法防止这种情况,那么下面的: 1.写的其他的pub/sub系统或者使用一些不同势 2.使用像 $ .publish(“merilon/TablesLoaded”一种解决办法,{Ø :的getTables()}); 如果有人看到一些其他的可能性,所以你欢迎与我分享你的想法。 – Lehnhard 2012-08-10 12:55:22