2012-04-03 7 views
1

Ich verwende den folgenden jquery Farbwähler auf meinem Projekt - www.eyecon.ro/colpicker. Ich verwende mehrere Colorpicker auf derselben Seite und rufe das Skript auf einer Klasse auf (ich habe 7 Eingänge, auf die der Farbwähler angewendet wird und keiner von ihnen ist verwandt). Das Problem, das ich habe, ist, dass ich nicht auf den Auslöser zugreifen kann, da es keine Beziehung zwischen den Colorpickern und ihren Auslösern gibt.
Weiß jemand, wie man das macht? Grundsätzlich versuche ich diese FunktionZugriff auf den Auslöser des Colorpicker

(...)onChange: function (hsb, hex, rgb) { 
    $(this).css('backgroundColor', '#' + hex); 
} 

Wo $ (this) zu verwenden, sollte die Eltern sein, aber es ist offensichtlich nicht.

Antwort

4

Sie benötigen die Funktion auf einen Kontext zu binden, so vor Aufruf der Funktion erklären, dass

var that = this // or whatever this(the context) is 

dann, dass statt dessen in den Rückruf nennen.

...)onChange: function (hsb, hex, rgb) { 
    $(that).css('backgroundColor', '#' + hex); 
} 

EDIT: hier ist der Javascript-Code, den ich schreiben würde.

$(document).ready(function() { 
    $('.colorpickerHolder').each(function(o) { 
     var _this = this; 
     $(this).ColorPicker({ 
      onChange: function(hsb, hex, rgb) { 

       _this.style.background = '#' + hex; 
       // the input which is trigger the colorpicker is supposed to be $(THIS); 
      } 
     }) 
    }) 
});​ 

http://jsfiddle.net/camus/PQDf8/4/

+0

die nicht berufstätig zu sein scheint. Hier ([link] (http://www.eyecon.ro/colorpicker/#about)) sind einige Beispiele und ich versuche, die letzte zu verwenden, aber in dem Beispiel ist der Trigger und ID (was es einzigartig macht auf der Seite), keine Klasse. – Seb

+0

ich kann dir nicht genau antworten, wenn ich nicht weiß, was dein Code genau ist. – mpm

+0

[Hier ist ein Beispiel] (http://jsfiddle.net/r6vh8/) meines Codes. Das ist ziemlich die Essenz davon :) – Seb

Verwandte Themen