2011-03-26 80 views
1

我有一個表示地圖的div網格。我希望能夠在任何div上生成點擊事件,因爲我用鼠標點擊。我用下面的代碼片段,但沒有成功雖然 我得到真正的返回值使用Javascript生成單擊事件

var fireOnThis = document.getElementById('someID'); 
var evObj = document.createEvent('MouseEvents'); 
evObj.initEvent('click', true, true); 
fireOnThis.dispatchEvent(evObj); 

我知道是沒有產生點擊,因爲當我點擊實際鼠標格被突出顯示。

只是一個側面的問題:是否有可能區分實際鼠標生成的點擊和通過javascript本身生成的點擊並阻止後面的?(我知道這聽起來邏輯錯誤,但我不知道很多JS,所以也許.. ..)

一些背景:我正在做一個在線遊戲網站,我想通過編寫一個擴展程序來自動執行例程任務....這部分內容是腳本。

編輯:也許我在看問題的方式是錯誤的.....也許在實際中,div沒有監聽點擊事件,原因div並沒有在實際中被選中,即使事件被觸發.....
New Question:給定事件(即,點擊一個特定的div)我可以告訴哪個監聽器/元素收到該事件嗎?

回答

-1

爲什麼不使用jquery?

$('#someID').click(); 

我認爲,有很多方法可以區分鼠標點擊和點擊觸發:觸發點擊的x/y位置可能不匹配的元素的位置點擊。

+0

有沒有一種方法可以在JS控制檯中使用chrome進行測試? – Jamil 2011-03-26 07:12:47

-1

使用jquery點擊事件來觸發一個函數。這很容易。

+0

downvote,閱讀問題 – YemSalat 2013-08-14 07:58:45

2

我的回答this SO question提出這個功能,這可能是有用的:在這個問題上

function eventFire(el, etype){ 
    if (el.fireEvent) { 
     el.fireEvent('on' + etype); 
    } else { 
     var evObj = document.createEvent('Events'); 
     evObj.initEvent(etype, true, false); 
     el.dispatchEvent(evObj); 
    } 
} 

Here's another SO question

1

的技術信息和代碼示例,請here。演示herehere

+0

在演示中,您正在使用分派的值來檢查事件是否被觸發。正如我最初發布的,我得到了一個真正的迴應,但該div沒有被選中。這可能是我的事件是如何阻止/過濾的方式? – Jamil 2011-03-26 08:30:56

+0

不知道。你有在DIV上設置的onclick處理程序嗎?你可以通過執行一個alert(typeof document.getElementById('someID')。onclick)'來檢查。 – 2011-03-26 10:57:51