empêche les événements de spectacle de se déclencher quand on choisit datepicker

J’ai un datesticker bootstrap. Je veux que l’événement show soit déclenché lorsque la zone de saisie est cliquée pour la première fois. Cependant, je ne souhaite pas que l’événement soit déclenché si l’utilisateur parcourt les mois avec les flèches prev et next.

Est-ce possible?

$('#sandbox-container input').datepicker({ autoclose: true }); $('#sandbox-container input').on('show', function(e){ console.log('show event'); }); 

Si vous jouez du violon, le message sera consigné lorsque vous cliquerez pour la première fois sur le champ de saisie (je veux ce comportement). Cependant, vous verrez également ce message si vous utilisez les flèches prev et next.

JS Fiddler est ici – http://jsfiddle.net/LcqM7/611/

Vous devrez vérifier si l’ show déjà “lancée” dans l’état actuel.

 $('#sandbox-container input') .on('show', function(e){ if (! $(this).data('showrun')) { console.log('show event'); $(this).data('showrun', true); } }) .on('hide', function(e){ $(this).data('showrun', false); }) .on('changeMonth', function(e){ console.log('change month event'); }); 

Et un exemple de travail:
http://jsfiddle.net/k6b3yepb/

C’est un peu sinistre, mais vous pouvez utiliser l’événement hide pour dissocier le show puis le rattacher à l’aide de jqueries one .

http://jsfiddle.net/5dhkumko/

 $('#sandbox-container input').datepicker({ autoclose: true }); $('#sandbox-container input').one('show', showMethod); $('#sandbox-container input').on('hide', function(e) { $('#sandbox-container input').off('show', showMethod).one('show', showMethod); }); function showMethod() { console.log('show event'); }