我必須檢查點擊事件是由哪個點擊事件,點擊鼠標或.click()函數。可能嗎?檢查HTML元素的點擊事件以編程方式或點擊鼠標點擊事件
0
A
回答
1
是的,你可以做這樣的...
$('button').on("click", function(e){
if (e.originalEvent !== undefined) {
// the button was actually clicked
} else {
// the button was triggered by code
}
});
1
您可以通過查看事件對象的pageX
或pageY
財產,這將是undefined
如果使用$("some selector").click();
告訴,但如果發生了一些實際的鼠標點擊。例如:
(function($) {
$("#target").click(function(e) {
if (typeof e.pageX === "undefined") {
display("Fired programatically");
}
else {
display("Fired by real click");
}
});
setTimeout(function() {
$("#target").click();
}, 500);
function display(msg) {
$("<p>").html(String(msg)).appendTo(document.body);
}
})(jQuery);
當然,如果有人真的非常聰明,並建立一個完整的單擊事件包括假pageX
和pageY
信息,這是行不通的,但jQuery的的$("some selector").click();
默認處理沒有做到這一點。
+0
當然這不趕上'。點擊()'直接叫DOM節點(在Chrome瀏覽ATLEAST)上。 http://jsbin.com/azaday/2/edit由於缺乏上下文,我不知道這是否對這個問題很重要。 – 2013-02-14 15:32:57
+0
@KevinB:可愛,Chrome(至少)爲'pageX'和'pageY'提供'0'。但我敢打賭,我們可以在事件對象上發現不同的東西* – 2013-02-14 15:34:46
相關問題
- 1. 鼠標點擊事件
- 2. 當點擊元素的子元素時忽略點擊事件
- 3. 事件點擊
- 4. 鼠標左鍵點擊的事件
- 5. 點擊鼠標右鍵點擊火焰事件並粘貼
- 6. 控件點擊事件點擊框
- 7. 鼠標事件「點擊過濾器」
- 8. AS3:鼠標點擊事件不工作
- 9. 鼠標事件點擊問題
- 10. ProgressBar和鼠標點擊事件
- 11. 如何模擬鼠標點擊事件
- 12. JQuery鼠標懸停和點擊事件
- 13. Windows窗體,WPF鼠標點擊事件
- 14. html body gwt點擊事件
- 15. jQuery點擊()事件沒有射擊AJAX加載的HTML元素
- 16. JQuery/DOM元素「點擊」事件註冊:on(「click」)VS點擊()VS addeventlistener(「點擊」)
- 17. 點擊事件時,沒有點擊一個元素
- 18. 點擊事件和點擊項目
- 19. 按鈕點擊點擊事件兩次
- 20. jQuery on(點擊)/點擊事件not firing
- 21. Edittext點擊事件焦點
- 22. ButtonField點擊事件
- 23. jquery - 點擊事件
- 24. KineticJS - 點擊事件
- 25. Summernote點擊事件?
- 26. Flash點擊事件
- 27. zIndex點擊事件
- 28. jquery點擊事件 -
- 29. PageViewController點擊事件
- 30. 點擊jquery事件
與我的做法相同,Kevin B指出:在實際的DOM元素上調用'click'會欺騙它。 – 2013-02-14 15:35:43
是的,我沒有意識到這一點,並在過去使用過這個。 – Archer 2013-02-14 15:37:43