Facebook JS SDK 具有相当于 jQuery 的 trigger()
函数,FB.Event.fire
这使您可以触发为特定事件附加的处理程序。它有助于我在 QUnit 中进行单元测试。它基本上按照您的预期工作; FB.Event.fire("comment.create", location.href);
为 comment.create
事件触发我的处理程序。
Twitter's object对于 Web Intents,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/
最佳答案
你好 Yahel 好问题,
如果你这样调用它应该可以工作:
twttr.events.trigger("click", {});
它需要第二个参数,即传递回回调的对象。当它自然发生时,这个对象会填充其他参数
{target: b,region: "intent",type: "click",data: {}}
如果您像我建议的那样传递一个空对象,它也可以正常工作,但在您的回调中,您只收到具有 type
属性的对象,因为这是由触发器添加的。
这正是您在未传递第二个参数时触发的错误。它尝试将 type
参数添加到 undefined
,然后死掉。
关于javascript - 如何以编程方式触发 Twitter 意图事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349917/