使用谷歌图表将mousedown事件注册为click
Registering mousedown event as click with google charts
尽管遇到了障碍,但我正试图将鼠标按下事件作为点击谷歌图表的方式发送,不确定为什么会出现以下错误。
我使用的是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]
如果有任何关于我哪里出错的提示,我们将不胜感激!
不能触发触发到另一个元素的事件。您需要创建一个新事件,或者只使用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');
});
相关文章:
- 注册OpenLayers事件时,即使使用匿名函数或绑定,JavaScript关闭也会触发循环内的所有内容
- 如何从已注册的事件发送 JavaScript 对象
- 使用谷歌图表将mousedown事件注册为click
- 没有为Ajax添加的新元素注册Jquery事件
- 事件虽然注册了一次,但会触发多次
- Chrome 扩展程序在后台注册事件.js
- 注册用于捕获阶段的事件侦听器在冒泡之前未触发 - 为什么
- 设置重复按钮以注册点击事件jquery
- 在元素添加到DOM之前,将事件注册到元素中
- 为什么在jQuery中将事件注册到文档中是一种糟糕的做法
- 当元素持有input+标签时,如何将click事件注册到元素
- 如何将jquery事件注册到非子元素的动态添加元素
- 为什么要避免onclick HTML属性而使用标准事件注册模型呢?
- 如何有效地将DOM事件注册到特定的JavaScript对象实例
- 内部事件注册与图像验证的高级注册
- 在document.ready中将Bind事件注册为DOMNodeInserted
- JS事件注册代替onclick..但如何使其可重复使用呢?解析ID
- 为什么iframe的不同onload事件注册方式会产生不同的结果
- 将现有事件注册到ajax加载的DOM
- 如何在更换事件注册区域时防止丢失事件