2012-11-27 14 views
8

मैं वर्तमान में चयनित होने पर तालिका पंक्ति को हाइलाइट कर रहा हूं लेकिन किसी एक कक्ष में मेरे पास एक बटन है। जब मैं बटन क्लिक करता हूं तो मैं तालिका पंक्ति क्लिक ईवेंट ट्रिगर कर रहा हूं। क्या दोनों को अलग करना संभव है?क्या मैं एक टीआर क्लिक घटना के अंदर एक बटन क्लिक को बाहर कर सकता हूं?

मेरे दो कॉल वर्तमान में इस तरह दिखेगा:

$('table.table-striped tbody tr').on('click', function() { 
    $(this).find('td').toggleClass('row_highlight_css'); 
}); 


$(".email-user").click(function(e) { 
    e.preventDefault(); 
    alert("Button Clicked"); 
}); 

मेरे एचटीएमएल इस तरह दिखता है:

<table class="table table-bordered table-condensed table-striped"> 
    <thead> 
    <tr> 
     <th>col-1</th> 
     <th>col-2</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Some Data</td> 
     <td><button class="btn btn-mini btn-success email-user" id="email_123" type="button">Email User</button></td> 
    </tr> 
    </tbody> 
</table> 

किसी भी विचार कैसे मैं पंक्ति क्लिक करें घटना पर आरंभ होने से बटन क्लिक करें घटना बंद हो सकता है?

उत्तर

14

e.stopPropagation(); का उपयोग करके देखें आप stopPropagation उपयोग करने के लिए:

$(".email-user").click(function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    alert("Button Clicked"); 
}); 

(यह भी देखें: What's the difference between event.stopPropagation and event.preventDefault?)

+0

वह था। लिंक के लिए भी धन्यवाद, बहुत उपयोगी है। – user1216398

0

मेरा मानना ​​है कि इस घटना के उत्साह से भरा हुआ के कारण होता है, बस के बाद e.preventDefault();

0

इस प्रयास करें:

$('.table-striped').find('tr').on('click', function() { 
    $(this).find('td').toggleClass('row_highlight_css'); 
}); 

$(".email-user").on('click', function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
});​ 
संबंधित मुद्दे