Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #35470

Re: addEventListener question

From "Christoph M. Becker" <cmbecker69@arcor.de>
Newsgroups comp.lang.javascript
Subject Re: addEventListener question
Date 2018-08-12 19:38 +0200
Organization solani.org
Message-ID <pkpra0$k4$1@solani.org> (permalink)
References (3 earlier) <87zhxtxb4u.fsf@bsb.me.uk> <pkmroi$slk$1@solani.org> <2d0334bc-a32a-3be6-e0cd-fc55d7e7446c@PointedEars.de> <pkplrp$rrc$1@solani.org> <5205cdc9-fb48-884b-fe3a-88c6013824c4@PointedEars.de>

Show all headers | View raw


On 12.08.2018 at 18:42, Thomas 'PointedEars' Lahn wrote:

> Christoph M. Becker wrote:
>
>> Yes, there are more changes needed for a single listener, but looking at
>> the HTML in the OP (and assuming that the textContent of the dt elements
>> is what should be displayed), I'd probably go this way.
> 
> Removing the “__nr” suffix from the class name is easy with one listener
> [although it it needs refinement and should not be done in the first place;
> .remove(className) exists]; but how do you propose, in a single “click”,
> listener, to determine the index of the link that has been clicked (here:
> “abc”)?
> 
> ISTM that this is only possible if there is some external property on the
> "link", e.g. an “id” attribute value, to contain that information.

Ah, it seems you're referring to Evertjan.'s code, while I'm referring
to Luuk's.  My following simplified solution[1] is somewhat speculative,
since it is based on some example HTML and an according script snippet,
but anyway:

    document.getElementById("csschart")
            .addEventListener("click", function (e) {
        var elt = e.target;
        while (elt && elt.tagName !== "DT") {
                while (elt.tagName !== "DD") {
                    elt = elt.parentNode;
            }
            elt = elt.previousElementSibling;
        }
        if (elt) alert(elt.textContent - 1);
    });

If the .textContent couldn't be used this way, it would still be
possible to walk through `#csschart dt` and set appropriate data-*
attributes, and to use these in the listener.

Disclaimer: the code is rather fragile, but the HTML could be changed,
and I wouldn't build a barchart with CSS anyway.

[1] see also <https://jsfiddle.net/bwy1x39d/9/>

-- 
Christoph M. Becker

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

addEventListener question Luuk <luuk@invalid.lan> - 2018-08-10 18:21 +0200
  Re: addEventListener question "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-08-11 00:04 +0200
    Re: addEventListener question Luuk <luuk@invalid.lan> - 2018-08-11 14:28 +0200
      Re: addEventListener question Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-08-11 14:53 +0100
        Re: addEventListener question "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-08-11 16:27 +0200
          Re: addEventListener question Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-08-12 17:49 +0200
            Re: addEventListener question "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-08-12 18:05 +0200
              Re: addEventListener question Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-08-12 18:42 +0200
                Re: addEventListener question "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-08-12 19:38 +0200
                Re: addEventListener question Julio Di Egidio <julio@diegidio.name> - 2018-08-12 11:12 -0700
                Re: addEventListener question James Kirk <noneya.invalid@gmail.com> - 2018-08-12 22:36 -0400
                Re: addEventListener question Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-09-06 08:17 +0200
                Re: addEventListener question "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-08-13 11:50 +0200
                Re: addEventListener question Luuk <luuk@invalid.lan> - 2018-08-18 16:50 +0200
        Re: addEventListener question "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-08-11 16:58 +0200
          Re: addEventListener question Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-08-12 02:40 +0100
            Re: addEventListener question "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-08-12 09:07 +0200
        Re: addEventListener question Luuk <luuk@invalid.lan> - 2018-08-11 19:17 +0200
  Re: addEventListener question "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-08-11 16:30 +0200
    Re: addEventListener question Luuk <luuk@invalid.lan> - 2018-08-11 19:12 +0200
    Re: addEventListener question Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-08-12 17:46 +0200
      Re: addEventListener question "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-08-12 18:06 +0200
        Re: addEventListener question "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-08-12 18:12 +0200
          Re: addEventListener question Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-08-12 18:33 +0200
  Re: addEventListener question Luuk <luuk@invalid.lan> - 2018-08-18 17:01 +0200

csiph-web