2012-06-04 18 views
5

मुझे पता है कि प्लगइन है। HasClass();jQuery चेक तत्व आईडी

मैं

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

निम्नलिखित अगर page_background क्लिक किया जाता है मैं कैसे की जाँच करेगा और header_background नहीं?

यह मेरे पास है, यह काम नहीं करेगा।

$('#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 'background_color' howe आईडी की तलाश में है वर्क आप क्लिक इवेंट को उस तत्व में बाध्य नहीं कर रहे हैं जिसमें वह आईडी है। (उस संपादन के आधार पर जिसे आपने अभी वापस देखा है) –

उत्तर

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

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

Working fiddle

आप इस के अंदर colorpicker onSubmit समारोह

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

जहां el के रूप में तत्व मिल का उपयोग कर रहे है, तो id उपयोग

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

काम नहीं किया, समस्या क्या हो सकती है? – Grigor

+0

पहेली की जांच करें और किसी भी पाठ पर क्लिक करें। –

+0

यह कहता है यह .attr एक फ़ंक्शन नहीं है – Grigor

4

मान लिया जाये कि आप this में संग्रहीत क्लिक किया तत्व के लिए संदर्भ है, तो आप बस देशी डोम संपत्ति का उपयोग कर सकते हैं:

var id = this.id; 

तो this एक jQuery वस्तु, नहीं एक डोम नोड है, आप कर सकते हैं this.attr("id") का उपयोग करें।

यह भी ध्यान दें कि hasClass एक सामान्य jQuery विधि है, प्लगइन नहीं। यह मानक jQuery पुस्तकालय का हिस्सा है।

+0

... या 'prop (" id ")' साथ ही (नए संस्करणों में)। – VisioN

संबंधित मुद्दे