Facebook JS SDK相当于jQuery的trigger()
函数,FB.Event.fire
允许您触发为特定事件附加的处理程序。它对我在QUnit中的单元测试很有帮助。它基本上按照你的预期工作; FB.Event.fire("comment.create", location.href);
为comment.create
事件触发我的处理程序。
Twitter's object对于网络意图,twttr
似乎有类似的内容,twttr.events.trigger()
,但其未记录。
除此之外,我无法弄清楚如何在代码中正确触发它,而不会抛出错误。
如何以编程方式测试我附加到此对象的处理程序?
代码如下:
twttr.events.bind("click", function(intent){
console.dir(intent);
});
我希望能够通过执行以下操作来触发它:twttr.events.trigger("click")
我尝试的所有内容都会导致错误,而且我无法破译obfuscated source code。
我在JSFiddle上提出了一些基本代码:http://jsfiddle.net/YL6SN/
答案 0 :(得分:4)
你好Yahel好问题,
如果你这样说它应该有效:
twttr.events.trigger("click", {});
它期望第二个参数是传递回回调的对象。当它自然发生时,该对象将填充其他参数
{target: b,region: "intent",type: "click",data: {}}
如果你像我提议的那样传递一个空对象,它也可以正常工作,但在你的回调中你只能使用type
属性接收该对象,因为这是由触发器添加的。
这正是您未传递第二个参数时触发的错误。它会尝试将type
参数添加到undefined
然后死掉。