0

我正在尝试将 mousedown 事件作为点击发送到谷歌图表,尽管遇到了障碍并且不知道为什么我会收到以下错误。

我正在使用 jQuery 和谷歌图表 api,visualisationOverlay 是图表顶部的绝对定位 div,错误是 dispatchEvent 将修改后的事件发送到谷歌图表 iframe。

$('#visualizationOverlay').live('mousedown',function(e){
    e.type = "click";
    vis = document.getElementById($('#visualization').find('iframe').attr('id'));
    console.log(vis);
    vis.dispatchEvent(e);
});

我在 Firefox 中收到以下错误

NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMEventTarget.dispatchEvent]

任何我出错的提示将不胜感激!

4

1 回答 1

0

您不能触发已触发到另一个元素的事件。您需要创建一个新事件或只使用 jQuerys trigger

看看这个例子。单击第一个元素会按预期触发第二个日志的错误。

$('#id1').on('mousedown', function(e){
  e.type = 'click';
  $('#id2').get(0).dispatchEvent(e);
});

$('#id2').on('mousedown', function(e){
  $('#id1').trigger('click')
});

$('#id1').on('mousedown', function(e){
  console.log('mousedown');
});

$('#id2').on('click', function(e){
  console.log('click');
});
于 2012-09-02T15:16:06.543 回答