0

障害物にぶつかり、次のエラーが発生する理由がわからないのに、クリックしてGoogleチャートにマウスダウンイベントを送信しようとしています。

私はjQueryとgooglechartsapiを使用しています。visualisationOverlayはチャートの上部に絶対位置にあるdivです。エラーは、dispatchEventが変更されたイベントをgooglechartiframeに送信するときです。

$('#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

別の要素に対して発生したイベントをトリガーすることはできません。新しいイベントを作成するか、jQueryを使用する必要がありますtrigger

このを見てください。最初の要素をクリックすると、期待どおりに2番目のログとしてエラーが発生します。

$('#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 に答える