2013-07-04 6 views
8

मैं एक div तत्व सेट क्लिक करने योग्य नहीं होना चाहता हूं और फिर किसी अन्य तत्व पर क्लिक करने के बाद इसे क्लिक करने योग्य सेट करना चाहता हूं।तत्व को अनजान करने के लिए सेट करें और उसके बाद क्लिक करने योग्य

तो, जब .case क्लिक किया जाता है:

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

लेकिन यह कैसे मैं #patient उन पर क्लिक करने के लिए पहले उदाहरण में स्थापित कर सकता है जब मैं और नीचे है:

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

"क्लिक करने योग्य" का क्या अर्थ है? क्या आपका मतलब एक क्लिक घटना है? क्या आपका मतलब है 'कर्सर: पॉइंटर'? – AlexQueue

+0

एक क्लिक इवेंट स्वीकार करने के लिए .. – IlludiumPu36

उत्तर

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

आप तो बस इसे स्वीकार नहीं करना चाहते हैं, आप इसे अपने सीएसएस (pointer-events) में जोड़ सकते हैं:

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

धन्यवाद, मैं देख सकता हूं कि यह कैसे काम कर सकता है, लेकिन मैं सोच रहा था कि तत्वों को क्लिक करने के लिए कोई तत्व सेट करने का कोई तरीका नहीं था ... मैं आपके समाधान को आज़मा दूंगा इसी बीच। – IlludiumPu36

+1

जोड़ा गया सीएसएस जो अधिकांश ब्राउज़रों में ट्रिगर होने से ईवेंट को रोक देगा: http://caniuse.com/#feat=pointer-events – kalley

+0

एसओ पर पहले दिन और पहले से ही 581 अंक ...! ठीक है अब आपके पास बहुत मदद है, आपकी मदद के लिए बहुत धन्यवाद! – IlludiumPu36

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

मुझे आशा है कि यह काम करेगा।

+1

यह मेरे लिए काम करता है! धन्यवाद! – shaosh

+0

यह एक साफ समाधान है! – greentec

0

ट्रिगर उपयोग

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

संदर्भ: .trigger()

2

अपनी जरूरत (केवल एक ही तत्व या कई, गतिशील तत्व निर्माण या नहीं) के आधार पर आप उपयोग कर सकते हैं:

1) एक चर करने के लिए जांचें कि क्या अन्य तत्व पर पहला क्लिक किया गया है

var isActive = false; 

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

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

    //Your behaviour 
}); 

2) पहला तत्व की क्लिक करें घटना में क्लिक फ़ंक्शन निर्धारित

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

तो फिर तुम off उपयोग कर सकते हैं क्लिक करें घटना

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

गैर क्लिक करने योग्य दूर करने के लिए:

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

क्लिक करने योग्य :

$("#ElementName").css("pointer-events","auto"); 
संबंधित मुद्दे