从iframe触发Backbone.js委托事件

时间:2013-01-03 16:15:27

标签: iframe backbone.js event-handling event-delegation

我遇到了在骨干视图中加载iframe的情况。视图有一个处理点击事件的事件哈希。

events: {
  'mousedown': 'toggleActive'
}

这适用于视图所属的DOM。问题是当我在iframe DOM中单击时,click事件不会冒泡到视图(如预期的那样)。所以我编写了一些代码,将点击从iframe DOM转移到父DOM。我在iframe体内有以下内容。

$("body").bind("click", function(event){
   window.parent.document.$("#"+tgId).trigger(event.type);
});

这适用于常规jquery事件处理程序,但由于某种原因它不会触发视图的事件处理程序(来自事件哈希)。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

您是否尝试在点击处理程序中添加调试器语句,然后检查window.parent.document.$("#"+tgId)实际上是什么?很难说肯定,但我的猜测是该代码没有选择你期望的元素。然后jQuery会很乐意让你在空集上调用trigger,所以如果是这样你就不会有任何错误。