como ligar para blur e alterar, mas apenas acionar uma função uma vez em jquery / Javascript?

Eu estou tentando acionar uma função quando um elemento de seleção é alterado.

Como o Ipad está com problemas ('change'), eu também quero ligar para 'blur', que funciona bem no Ipad.

No entanto, eu não quero que ambos os eventos disparem a função duas vezes, então eu preciso de algum tipo de gancho para ter certeza se ambosmudança eborrão disparar, que a função subjacente é acionada apenas uma vez.

Isso é o que estou fazendo agora, mas ... não é muito legal:

// make sure binding is only assigned once
var compSel = $('#my_select');
if ( compSel.jqmData('bound') != true ){
    console.log("bound");
    compSel.jqmData('bound', true)
        .on( $.support.touch ? 'blur' : 'change', function(){
            console.log("trigger");
            // run function xyz
        })
    }               

Isso funciona se você pode viver com todos os dispositivos tocáveis ​​fazendo comborrão.

Questão:
Alguém tem uma ideia melhor para garantir que o efeito de desfoque e alteração só acione uma função uma vez?

Obrigado pela ajuda!

questionAnswers(6)

yourAnswerToTheQuestion