2010-01-30 6 views
3

Je suis coincé avec ce quelqu'un peut me aider ...Bascule problème en direct de l'événement jquery

ici est le html

<tr class="appendvalue"> 
    <td colspan="2"> 
    <asp:DropDownList ID="ddlSource" runat="server"></asp:DropDownList> 
    <asp:TextBox ID="txtSourceValue" runat="server" CssClass="hide" /> 
    <a href="#" class="t12">add static value</a> 
    </td> 

ici est le jquery

$(document).ready(function() { 
     $('.appendvalue > td > a').live("click", function(e) { 
      e.preventDefault(); 
      $(this).prev().prev().toggle(); 
      $(this).prev().toggle(); 
      $(this).toggle(function() { $(this).text("select from dropdown"); }, function() { $(this).text("add static value"); }); 
     }); 
    }); 

après le premier clic, il bascule uniquement le texte de l'ancre et non la bascule et la zone de texte.

Répondre

1

.toggle() est vraiment une méthode pratique pour les événements de clic, donc l'utilisation .toggle() dans le gestionnaire d'événements clic du même élément va être problématique. Au lieu de cela ...

$(document).ready(function() { 
    $('.appendvalue > td > a').live("click", function(e) { 
     e.preventDefault(); 
     $(this).prevAll().toggle(); 
     if ($(this).parent().find("input").is(":hidden")) { 
      $(this).text("add static value"); 
     } else { 
      $(this).text("select from dropdown"); 
     } 
    }); 
}); 
2

Essayez ceci:

$(document).ready(function() { 
    $('.appendvalue > td > a').live("click", function(e) { 
     e.preventDefault(); 
     var $this = $(this); 
     $this.prevAll().toggle(); 
     $this.toggle(function() { $this.text("select from dropdown"); }, function() { $this.text("add static value"); }); 
    }); 
}); 
+1

Si vous allez utiliser $ (this) plus d'une fois le cache. var $ this = $ (this). Ensuite, utilisez $ this le reste des endroits, cela signifie que vous ne recréerez pas d'objets jQuery. – PetersenDidIt

+0

@petersendidit Il était tard. Je réclame l'immunité. :) Bonne prise, je ne sais pas pourquoi je n'ai pas vu ça quand je l'ai codé. Il a été corrigé. Merci mon pote! –