SELECT comme événement onChange avec jQuery

voix
0

J'ai un petit menu déroulant similaire <select>, qui contolled de js fonction externe.
HTML:

<ul class=select id=select>
   <li>
      <a href=javascript:void(0); class=selectlink id=price_type>UAH</a>
      <ul>
         <li onclick=onchange('elm0', 0); >
            <a href=javascript:void(0); id=elm0>UAH</a></li>
         <li onclick=onchange('elm1', 1); >
            <a href=javascript:void(0); id=elm1>USD</a></li>
         <li onclick=onchange('elm2', 2); >
            <a href=javascript:void(0); id=elm2>EUR</a></li>
         <li onclick=onchange('elm3', 3); style=border-bottom:1px solid #54616E>
            <a href=javascript:void(0); id=elm3>...</a></li>
      </ul>
   </li>
</ul>

et onchange-fonction utilisant jQuery:

function onchange(id, index) {
  $(#price_type).html($(#+id).html());
  updateData(index);
}

updateData(index)fait une demande de AHAH de modifier le contenu en fonction de l' argument index. Mais je veux changer cette vieille source en utilisant jQuery et donc sans onclick=onchange('elm...', ...);. Et parce que j'ai commencé à apprendre jQuery il y a 2 jours, j'ai besoin d'aide sur comment est - il correct:

$(function() {
   $(ul#select li ul li).click(function() {
      var id = $([id^=elm]).attr(id).match(/\((\d+)\)/)[1];
      $(#price_type).html($(#elm+id).html());
      updateData(id);
   });
});

et je fais quelque chose de mal ... Merci pour vos réponses!

Créé 26/08/2009 à 23:07
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Je fait attacher le click()à l'ancre plutôt que l'élément de liste.

$("ul#select li ul li a").click(function() {
    $("#price_type").html($(this).html());

    var id = $(this).attr("id")).match(/\((\d+)\)/)[1];
    updateData(id);

    return false; // Now you can also remove the javascript:void(0) from your anchors onClick
});
Créé 26/08/2009 à 23:35
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more