// Open Zendesk widget on click of elements with class 'zendesk-open'
// or a CTA link using href="#zendesk" or data-zendesk="open"
$(document).on('click', '.zendesk-open, a[href="#zendesk"], [data-zendesk="open"]', function (e) {
e.preventDefault();
console.log('[Zendesk] trigger clicked', this);
function openZendesk() {
if (typeof zE === 'function') {
console.log('[Zendesk] zE available, opening widget');
zE('webWidget', 'open');
}
}
if (typeof zE === 'function') {
openZendesk();
} else {
console.log('[Zendesk] zE not yet available; polling...');
var tries = 0;
var iv = setInterval(function () {
tries++;
if (typeof zE === 'function') {
clearInterval(iv);
console.log('[Zendesk] zE ready after', tries, 'tries; opening');
openZendesk();
}
if (tries > 20) {
clearInterval(iv);
console.warn('[Zendesk] zE not available after timeout');
}
}, 250);
}
});
console.log('[Zendesk] handler attached');
Like this:
Like Loading...