Uncaught TypeError: jQuery(...).on is not a function

Avatar

Avatar

roshanc44331495

Avatar

roshanc44331495

roshanc44331495

26-07-2018

Hi,

Getting "Uncaught TypeError: jQuery(...).on is not a function" error while testing the custom tracking and this is happening only on one page rest it's working fine, as we can see in the below screenshot.

1536000_pastedImage_2.png

Error line:

1535999_pastedImage_1.png

Function:

function bindKudoEvent(){
jQuery('.lia-button-image-kudos-kudoed a.kudos-link').on('click',function(e){
var isAcceptedSol = jQuery(this).parents('.lia-message-view-display').hasClass('lia-accepted-solution');
trackClickTkb(0,"kudo count",isAcceptedSol)
setTimeout(function(){ bindKudoEvent() }, 3500);
});
jQuery('.lia-button-image-kudos-not-kudoed a.kudos-link').on('click',function(e){
var isAcceptedSol = jQuery(this).parents('.lia-message-view-display').hasClass('lia-accepted-solution');
trackClickTkb(1,"kudo count", isAcceptedSol)
setTimeout(function(){ bindKudoEvent() }, 3500);
});
}

bindKudoEvent();

Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

StewSchilling

MVP

Avatar

StewSchilling

MVP

StewSchilling
MVP

16-08-2018

If jQuery is loading asynchronously you could have a race condition between DTM and the loading of jQuery.

I don't think that you need to do event handling this way.  I'd use event rules within DTM.  That would free you from this issue.

In cases where I do need to work outside of DTM, I try to use native Javascript to avoid dependencies on libraries like jQuery.

Answers (2)

Answers (2)

Avatar

Avatar

katherinew33547

Avatar

katherinew33547

katherinew33547

26-07-2018

Does jQuery exist on the page at the point that your function is executed? If not, then that would cause this error.

Avatar

Avatar

roshanc44331495

Avatar

roshanc44331495

roshanc44331495

07-08-2018

jQuery exist on the page I got this error on page load mostly.