There is a widget loaded by data-mage-init that I need to run code after it has triggered the change event on the product options, why it does this I don't know, I commented out the line that triggers the change event but the module still works perfectly.

I need to alter some other things on the page when the drop downs are changed. The problem is the drop downs are changed on load because data-mage-init loads this widget which uses trigger() to call the change event on all the select drop downs. I need to define my change events after this runs, otherwise I will have code executing just on page load, instead of when a drop down is changed, which is bad.

I am looking for a simple hook to execute code after ALL mage-init scripts have been looped over and loaded.


I think this is not the perfect answer this is a hint.

@Wolfe -can you find a data-bind attribute, if can I can give you a hint. Knockout Js use render events eg. afterRender, beforeRender like

Then if you can add afterRender event and can call your custom function. eg.

    <span class="counter-number" data-bind="text: getQuantity(),afterRender:setSummeryQty"></span>

afterRender:setSummeryQty here call the setSummeryQty() js function,

  • Cool thank you I'll try this out and report back – Wolfe Dec 23 '17 at 9:12
  • @wolfe - I also wanted to duplicate value and set action after ko js load, so I have tried afterRender and put my custom js function, its works. – Lasantha Dec 23 '17 at 9:50
  • @wolfe - Have check it – Lasantha Dec 27 '17 at 18:34
  • yep it works thanks :D Now I just have to figure out how to run something enclosed in a require.js module from this method :) – Wolfe Dec 28 '17 at 7:57
  • @wolfe - Good , we have to learn ko js to continue the m2 – Lasantha Dec 28 '17 at 9:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.