2013-07-04 21 views
8

div要素をクリックできないように設定し、別の要素をクリックした後にクリック可能に設定したいとします。だから、要素をクリップ不可能にしてクリック可能に設定する

、.caseがクリックされる:

$('.case').click(function() { 
$('#patient').addClass('active').on('click'); 
}); 

しかし、私はさらにダウンしていたときにどのように私は最初のインスタンスでunclickableに#patientを設定します:

$('#patient').click(function() { 
alert('clicked'); 
}); 
+0

「クリック可能」とは何ですか?クリックイベントがあることを意味しますか?あなたは 'cursor:pointer'を持っていることを意味しますか? – AlexQueue

+0

はクリックイベントを受け入れることができます。 – IlludiumPu36

答えて

28
$('#patient').on('click', function() { 
    if ($(this).hasClass('active')) { 
     // do whatever when it's active. 
    } 
    return false; 
}); 

あなたの場合受諾しないようにしたい場合は、これをあなたのCSS(pointer-events)に追加することができます:

#patient { pointer-events: none; } 
#patient.active { pointer-events: auto; } 
+0

これはどのように動作するのか分かりますが、クリックイベントを受け付けないように要素を設定する方法があるかどうかは疑問でした...解決策を試してみましょうその間。 – IlludiumPu36

+1

ほとんどのブラウザでクリックイベントが発生しないようにするCSSが追加されました:http://caniuse.com/#feat=pointer-events – kalley

+0

4日間のSOと既に581ポイント...!さてあなたは今より多くのあなたの助けをありがとう! – IlludiumPu36

5
$('#patient').unbind("click"); 

これがうまくいけばいいですね。

+1

これは私のために働く!ありがとうございました! – shaosh

+0

すてきな解決策です! – greentec

0

使用トリガー

$('#patient').addClass('active').trigger('click'); 

REFERENCE:.trigger()

2

あなたの必要性に応じて、(一つだけの要素または多く、動的な要素の作成やない)あなたが使用することができます。

1)変数へ他の要素の最初のクリックが完了したかどうかを確認してください。

var isActive = false; 

$('.case').click(function() { 
    isActive = true; 
}); 

$('#patient').click(function(){ 
    if(isActive === false) 
     return false; 

    //Your behaviour 
}); 

2)次に、あなたはクリックイベント

1
for first instance..add deactive class to patient div tag... 

$('#patient').click(function() { 
if($(this).hasClass('deactive')) 
return; 
else 
//do what you want to do. 
}); 

on case click... 

$('.case').click(function() { 
$('#patient').removeClass('deactive'); 
}); 
2

非クリッカブル削除するoffを使用することができ、最初の要素

$('.case').on('click',function() { 
    //Make element clickable 
    $('#patient').on('click',function(){ 
     //Your behaviour 
    }); 
}); 

のクリックイベントにクリック機能を定義します。

$("#ElementName").css("pointer-events","none"); 

クリッカブルを:

$("#ElementName").css("pointer-events","auto"); 
関連する問題