8

.hasClass()というプラグインがあることは知っています。

私は以下を持っています

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

header_backgroundではなくpage_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);
    });
4

2 に答える 2

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

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

ワーキングフィドル

この内部カラーピッカー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
于 2012-06-04T17:31:36.303 に答える
6

クリックされた要素への参照がに格納されていると仮定するとthis、ネイティブDOMプロパティを使用するだけで済みます。

var id = this.id;

がDOMノードではなくjQueryオブジェクトの場合thisは、を使用できますthis.attr("id")

hasClassまた、これはプラグインではなく、通常のjQueryメソッドであることに注意してください。これは、標準のjQueryライブラリの一部です。

于 2012-06-04T17:30:27.887 に答える