[英]How to know which type of Html object is using jQuery click event?
我怎么知道我使用jQuery單擊了哪種HTML對象?
例如,如果我單擊“按鈕”,則它應該通知我這是按鈕對象或“文本輸入”或“文本區域...”。
為什么我問這個問題?
因為我正面臨此類問題。
我有一個Textarea,下面是文件輸入HTML對象。 我已將Caret函數(該函數將返回Textarea中的當前光標位置)綁定到該Textarea。 但是,當我單擊“瀏覽”按鈕上傳文件時,它給了我一個錯誤。 所以我想通過知道哪種類型的HTML對象來防止這種情況?
在點擊事件中
function(e){
var type=$(this).prop('tagName'); // I think it will need jQuery >1.6
// or
var type=$(this)[0].tagName;
}
實際上,過去有很多關於此問題的文章。
好吧,您可以使用attr(“ tagName”)來返回標簽的名稱。
示例代碼段:假設您單擊ID為#myId的某個元素,然后綁定click事件並獲取attr(“ tagName”)(jQuery方式)
$('#myId').on('click', function(){
console.log($(this).attr('tagName'));
});
這應該有所幫助。
<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div id="log"></div>
<input type="button" id="myButton" value="Button">
<input type="submit" id="myButton" value="submit">
<input type="text" id="myButton" value="text">
<input type="date" id="myButton" value="date">
<textarea>Test</textarea>
<script>
$("input, textarea").on('click', function (e) {
$( "#log" ).html( "clicked: " + event.target.nodeName + " Type: " + this.type);
});
</script>
</body>
</html>
$(e.target)-包含用戶單擊的DOM元素。 我們可以使用該對象獲取任何有關對象用戶單擊的內容。
e.target始終將是被單擊的頂部元素。因此,從技術上講,每次在屏幕上單擊主體時,e.target都會始終返回樹中被單擊區域中最遠的子元素。 但是,我們可能有多個絕對定位的元素占據了同一區域。 在這種情況下,將返回具有較高z-index的元素。
您還可以使用一些DOM屬性來獲取對象類型:
e.target.nodeName
要么
e.target.tagName
例如:
HTML-
<input class="Track" type="button" value="Submit" />
<button class="Track">Submit</button>
jQuery-
$('.Track').click(function (e) {
alert("Object: " + e.target.nodeName + " Type: " + e.target.type);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.