Frage

ich jQuery bin versucht, die Menge an mal eine ID geklickt wurde zu berechnen. wenn # kwick_1 zum Beispiel einmal geklickt wird, möchte ich es das Video laden ‚else‘ nichts zu tun.

Und ich bin auf der Suche dieses in der gesamten Funktion bei der Anwendung so das gleiche für 2 geht, 3, 4, etc.

Wie würde ich das erreichen?

var timesClicked = 0;
  $('#kwick_1, #kwick_2, #kwick_3, #kwick_4, #kwick_5, #kwick_6, #kwick_7').bind('click', function(event){
   var video = $(this).find('a').attr('href'); /* bunny.mp4 */

   var clickedID = $(this).attr('id'); /* kwick_1 */
   var vid = 'vid';
   timesClicked++;

   $(this).removeAttr('id').removeAttr('class').attr('id',clickedID + vid).attr('class',clickedID + vid);
   if(timesClicked == 1) {

    $.get("video.php", { video: video, poster: 'bunny.jpg', }, function(data){
     $('.'+clickedID+vid).html(data);
    }); 

   } else {
    /* Do nothing for now */
   }
   return false;
  });
War es hilfreich?

Lösung

Sie können mit .one() dies ein tun, etwas einfacher, wie folgt aus:

$('#kwick_1, #kwick_2, #kwick_3, #kwick_4, #kwick_5, #kwick_6, #kwick_7').one('click', function(event){
  var video = $(this).find('a').attr('href'), clicked = this.id + 'vid';

  $(this).attr({ id: clicked, 'class': clicked });
  $.get("video.php", { video: video, poster: 'bunny.jpg', }, function(data){
    $('.'+clicked).html(data);
  }); 
}).click(function() { return false; });

Der Rest ist nur die Optimierung und Schneiden auf wiederholten Code unten, aber die Idee ist es, den Teil zu binden Sie nur einmal verwenden passieren sollen, .one() , dann ist das Handler entfernen sich nach der ersten Ausführung. Dann sind verbindlich wir die return false mit .click() da, dass man immer passieren . Vergewissern Sie sich, diese gebunden nach wie im Beispiel oben, da Ereignishandler in der Reihenfolge ausgeführt werden sie gebunden waren.

Auch Sie könnten Ihre #kwick_1, #kwick_2.... Wähler mit .kwick ersetzen, wenn man sie alle eine Klasse geben könnte, das oben würde noch viel Arbeit und viel einfacher zu halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top