2010-12-08 14 views
1

Beispiel zum Objekt:

<button>Test 1</button> 
<button>Test 2</button> 
<button>Test 3</button> 

so etwas wie folgt aus:

$('button').click(function(){ 
    $.post('a.php',{text:$(this).text()},function(data){ 
      if(data == 'doThis'){ 
      $(this)...(??button??)...css('color','#ff0000'); 
      }else{ 
      $(this)...(??button??)...css('color','#00ffff'); 
      } 
    }); 
}); 

Also, je nach "a.php" Ergebnis .. die Taste haben etwas anderes. Ich habe keine Ahnung, die Zahl os Tasten, und die Idee ist eine Funktion für alle .. Wie Sie Menschen das tun würden?

+2

Willkommen zu stackoverflow –

Antwort

2

Versuchen Sie so etwas wie dieses (nicht getestet)

$('button').click(function(){ 
var btn = $(this); 
$.post('a.php',{text:$(this).text()},function(data){ 
     if(data == 'doThis'){ 
     btn.css('color','#ff0000'); 
     }else{ 
     btn.css('color','#00ffff'); 
     } 
    }); 
}); 

eine Instanz der Schaltfläche als btn speichern, können Sie es innerhalb der Anon Funktion von .post $ nennen, die Referenz zu halten, auch wenn das Click-Ereignis ausgeführt wird mehrmals vor .post kann eine gültige zurückgeben.

1

Erstellen Sie eine temporäre Bezugnahme auf this Verschluss zu halten:

$('button').click(function(){ 
    var self = this; 
    $.post('a.php',{text:$(self).text()},function(data){ 
     $(self).css('color',(data == 'doThis') ? '#ff0000' : '#00ffff'); 
    }); 
}); 
+0

Perfekte Leute, danke – user534312

0

einfach hinzuzufügen, wäre eine weitere Option $.ajax, und stellen Sie die context Option this, so dass die angeklickt, um den Kontext für den Erfolg zu benutzen, Rückruf:

$.ajax({ 
    url: "a.php", 
    type: "post", 
    data: {text:$(this).text()}, 
    context: this, 
    success: function(data) { 
     if(data == 'doThis'){ 
     $(this).css('color','#ff0000'); 
     }else{ 
     $(this).css('color','#00ffff'); 
     }  
    } 
}); 
Verwandte Themen