jQuery .sortinggger («change») ne fonctionne pas

Je ne parviens pas à faire fonctionner .sortinggger("change") . Quelqu’un sait pourquoi?

 jQuery(document).ready(function () { jQuery("select[id='DROPDOWNID']").change(function () { var selectedIndex = jQuery("select[id='DROPDOWNID']").prop('selectedIndex'); switch (selectedIndex) { case 0: hideVarforProspekt(); break; case 1: hideOrdervarde(); break; case 2: break; case 3: hideSektor(); break; } }); ** jQuery("select[id='DROPDOWNID']").sortinggger("change"); ** function hideVarforProspekt() { jQuery("input[id='IDFROMSHAREPOINT']").closest('tr').hide(); } function hideSektor() { jQuery("table[id='IDFROMSHAREPOINT']").closest('tr').hide(); } function hideUppskOrder() { jQuery("input[id='IDFROMSHAREPOINT']").closest('tr').hide(); } }); 

Parfois, l’utilisation de sortinggger n’est pas nécessaire:

 // use just jQuery("#DROPDOWNID") instead var select = jQuery("select[id='DROPDOWNID']"); // placing the handler in separate function var changeHandler = function () { var selectedIndex = select.prop('selectedIndex'); switch(selectedIndex) { case 0: hideVarforProspekt(); break; case 1: hideOrdervarde(); break; case 2: break; case 3: hideSektor(); break; } } // cache your jQuery selectors. It's a good practice // and improves the readability select.change(changeHandler); // sortingggering changeHandler(); 

Le gestionnaire d’événements Change doit être défini avant d’appeler le .sortinggger('change') ou le .change()

Ci-dessous 2 scénarios.

Scénario 1: l’ événement change est appelé avant sa définition.

  $(document).ready(function() { $('#selector').change(); or $('#selector').sortinggger('change'); $('#selector').on('change', function(){ }); }); 

Scénario 2: où le gestionnaire d’événements change est défini avant de l’appeler

 $(document).ready(function() { $('#selector').on('change', function(){ }); $('#selector').change(); or $('#selector').sortinggger('change'); }); 

Pour moi, le problème était résolu lorsque j’utilisais scenario2. J’espère que cela t’aides!!

Voici une version de travail utilisant la syntaxe id:

 $(document).ready(function () { $('select[id=car]').change(function () { alert("change: " + $(this).val()); }); $("#car").sortinggger('change'); }); 

JSFiddle

utilisé ceci:

 jQuery("#DROPDOWNID").sortinggger("change"); 

pouvez-vous s’il vous plaît vérifier le lien donné Démo

Code HTML

  

Jquery Code

 $(document).ready(function(){ $("#car").change(function(){ alert("change"); }); $("#car").sortinggger('change'); }); 

Résultat :

Il alerte le feu

Supprimer id = de tous les sélecteurs et le remplacer par #selected id

L’ .change() attend que le champ d’entrée perde le focus; il ne sera donc pas déclenché avant que vous ne cliquiez sur le champ ou que vous ne l’ayez pas quitté.

Donc, vous pouvez simplement append .blur() événement .blur() après l’événement .change() comme ceci:

  var $element = jQuery("select[id='DROPDOWNID']"); $element.change(function () { ... }); $element.blur(); 

Ou vous pouvez utiliser un autre événement à la place de .change() , par exemple .keyup() , .paste() , etc.

essayez ceci, ça devrait marcher

 $('#selector').change();