What properties can I use with event.target?

后端 未结 7 2011
醉酒成梦
醉酒成梦 2020-12-07 07:39

I need to identify elements from which events are fired.

Using event.target gets the respective element.

What properties can I use from there?<

相关标签:
7条回答
  • 2020-12-07 08:21
    //Do it like---
    function dragStart(this_,event) {
        var row=$(this_).attr('whatever');
        event.dataTransfer.setData("Text", row);
    }
    
    0 讨论(0)
  • 2020-12-07 08:23

    event.target returns the node that was targeted by the function. This means you can do anything you would do with any other node like one you'd get from document.getElementById

    0 讨论(0)
  • 2020-12-07 08:29
    window.onclick = e => {
        console.dir(e.target);  // use this in chrome
        console.log(e.target);  // use this in firefox - click on tag name to view 
    }  
    

    take advantage of using filter propeties


    e.target.tagName
    e.target.className
    e.target.style.height  // its not the value applied from the css style sheet, to get that values use `getComputedStyle()`
    
    0 讨论(0)
  • 2020-12-07 08:34

    If you were to inspect the event.target with firebug or chrome's developer tools you would see for a span element (e.g. the following properties) it will have whatever properties any element has. It depends what the target element is:

    event.target: HTMLSpanElement
    
    attributes: NamedNodeMap
    baseURI: "file:///C:/Test.html"
    childElementCount: 0
    childNodes: NodeList[1]
    children: HTMLCollection[0]
    classList: DOMTokenList
    className: ""
    clientHeight: 36
    clientLeft: 1
    clientTop: 1
    clientWidth: 1443
    contentEditable: "inherit"
    dataset: DOMStringMap
    dir: ""
    draggable: false
    firstChild: Text
    firstElementChild: null
    hidden: false
    id: ""
    innerHTML: "click"
    innerText: "click"
    isContentEditable: false
    lang: ""
    lastChild: Text
    lastElementChild: null
    localName: "span"
    namespaceURI: "http://www.w3.org/1999/xhtml"
    nextElementSibling: null
    nextSibling: null
    nodeName: "SPAN"
    nodeType: 1
    nodeValue: null
    offsetHeight: 38
    offsetLeft: 26
    offsetParent: HTMLBodyElement
    offsetTop: 62
    offsetWidth: 1445
    onabort: null
    onbeforecopy: null
    onbeforecut: null
    onbeforepaste: null
    onblur: null
    onchange: null
    onclick: null
    oncontextmenu: null
    oncopy: null
    oncut: null
    ondblclick: null
    ondrag: null
    ondragend: null
    ondragenter: null
    ondragleave: null
    ondragover: null
    ondragstart: null
    ondrop: null
    onerror: null
    onfocus: null
    oninput: null
    oninvalid: null
    onkeydown: null
    onkeypress: null
    onkeyup: null
    onload: null
    onmousedown: null
    onmousemove: null
    onmouseout: null
    onmouseover: null
    onmouseup: null
    onmousewheel: null
    onpaste: null
    onreset: null
    onscroll: null
    onsearch: null
    onselect: null
    onselectstart: null
    onsubmit: null
    onwebkitfullscreenchange: null
    outerHTML: "<span>click</span>"
    outerText: "click"
    ownerDocument: HTMLDocument
    parentElement: HTMLElement
    parentNode: HTMLElement
    prefix: null
    previousElementSibling: null
    previousSibling: null
    scrollHeight: 36
    scrollLeft: 0
    scrollTop: 0
    scrollWidth: 1443
    spellcheck: true
    style: CSSStyleDeclaration
    tabIndex: -1
    tagName: "SPAN"
    textContent: "click"
    title: ""
    webkitdropzone: ""
    __proto__: HTMLSpanElement
    
    0 讨论(0)
  • 2020-12-07 08:39

    event.target returns the DOM element, so you can retrieve any property/ attribute that has a value; so, to answer your question more specifically, you will always be able to retrieve nodeName, and you can retrieve href and id, provided the element has a href and id defined; otherwise undefined will be returned.

    However, inside an event handler, you can use this, which is set to the DOM element as well; much easier.

    $('foo').bind('click', function () {
        // inside here, `this` will refer to the foo that was clicked
    });
    
    0 讨论(0)
  • 2020-12-07 08:43

    event.target returns the node that was targeted by the function. This means you can do anything you want to do with any other node like one you'd get from document.getElementById

    I'm tried with jQuery

    var _target = e.target;
    console.log(_target.attr('href'));
    

    Return an error :

    .attr not function

    But _target.attributes.href.value was works.

    0 讨论(0)
提交回复
热议问题