2012-06-04 16 views
5

.hasClass();jQuery kontrol elemanı ID

Ben ben page_background tıklandığında kontrol ve header_background olmaz nasıl

$('#page_background, #header_background').ColorPicker({...

aşağıdaki?

Şimdi sahip olduğum şey bu, işe yaramaz. this bir jQuery nesnesi değil, bir DOM düğümü ise yapabilirsiniz,

var id = this.id; 

:

$('#page_background, #header_background').ColorPicker({ 
     onSubmit: function(hsb, hex, rgb, el) { 
      $(el).val(hex); 
      $(el).ColorPickerHide(); 

      var id = this.id; 

      if(id == 'page_background') 
       $('body').css("background-color","#"+hex); 
     }, 
     onBeforeShow: function() { 
      $(this).ColorPickerSetColor(this.value); 
     } 
    }) 
    .bind('keyup', function(){ 
     $(this).ColorPickerSetColor(this.value); 
    }); 
+0

id kullanımını almak için 'background_color' howe ifadesini arıyor tıklama etkinliğini, bu kimliğe sahip bir öğeye bağladığınızdan emin olun. (yeni döndürdüğünüz düzenlemeye dayanarak) –

cevap

8
$(function(){ 
    $('#page_background, #header_background').click(function(){ 

    var id = this.id; 
    if(id == 'page_background') 
    // page background 
    else 
    //header 
}); 
}); 

Working fiddle

bu iç Colorpicker onSubmit fonksiyonunu Eğer el olarak eleman almak

onSubmit: function(hsb, hex, rgb, el) { 

kullandığınız gibi, sen de öyle

var id = $(el).attr('id'); 
// or 
var id = $(el).prop('id'); // new way 
//or simply 
var id = el.id; // this should work too 
+0

işe yaramadı, sorun ne olabilir? – Grigor

+0

Klavyeyi kontrol edin ve herhangi bir metne tıklayın. –

+0

diyor ki this.attr bir fonksiyon değil – Grigor

4

Eğer this saklanan tıklanan öğeye bir başvuru var varsayarsak, sadece yerli DOM özelliğini kullanabilirsiniz this.attr("id") kullanın. Ayrıca, hasClass'un bir eklenti değil, normal bir jQuery yöntemi olduğunu unutmayın. Standart jQuery kitaplığının bir parçası.

+0

... veya prop ("id") de (yeni sürümlerde). – VisioN