Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.

In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.

All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

Add a way to get the element an event was fired for

  • Filter
  • Time
  • Show
Clear All
new posts

  • Add a way to get the element an event was fired for

    If you set elem.SetPanelEvent("something",something) you can't get the element itself, because JS doesn't allow to hardcode event parameters, unlike listeners added directly in a layout file. So any dynamically created elements can't be referred to from their own event handlers, nor any their data of interest. This currently leaves any attempts to create fully dynamic UI impossible, as it can't properly react to any event if there are more than 1 elements with the same event handler. I'm stuck with this issue currently and can't progress any further.

  • #2
    You can pass in a function built by a function like so

          root_pane.SetPanelEvent('onactivate', function() {
            return ItemPanelOnActivate(root_pane);
          root_pane.SetPanelEvent('onmouseover', function() {
            return ItemPanelMouseOver(root_pane);
          root_pane.SetPanelEvent('onmouseout', function() {
            return ItemPanelMouseExit(root_pane);
    This currently leaves any attempts to create fully dynamic UI impossible
    You fucking what
    Last edited by gigimoi; 10-30-2015, 12:29 PM.


    • #3
      I'm talking about creating a set of identical elements in row. If I just blindly do it like you variable capture won't let me work with each element. Instead it will make all elements handlers get the last created element as a parameter. Fucking what??? Yes, I tried to create a purely dynamic settings UI by using JS objects as a prototype to construct from, but this has bitten me in the knees.


      • #4
        Maybe you can follow something like this example to get around last element always being the same?

        In my mod, for dynamically created checkboxes, I have their layout and js event handler defined in separate files (.xml, .js), then in the event handler, I use

        checkboxPanel = $.GetContextPanel()

        to get the checkbox that was clicked. My checkboxes simply just send their selected/deselected state to the server, though.
        Training Map for Last Hitting Under a Tower:


        • #5
 one more time