यहां देखे गए व्यवहार के JSFiddle, मध्य-क्लिक से संबंधित और click
क्रोम और एफएफ में ईवेंट है।मध्य-क्लिक क्यों कई मामलों में 'क्लिक' ट्रिगर नहीं करता है?
'क्लिक' थोड़े sorta काम करता है
दृष्टिकोण 1: एक a
तत्व और एक मध्यम क्लिक करने के लिए सीधे एक click
हैंडलर आबद्ध क्रोम में हैंडलर को गति प्रदान करेगा लेकिन एफएफ में नहीं।
$('div a').on('click', function(ev) {
// middle click triggers this handler
});
दृष्टिकोण 2: एक div
जो एक या अधिक a
शामिल करने के लिए एक प्रत्यायोजित click
हैंडलर में आबद्ध करें। मध्य क्लिक क्रोम या एफएफ में इस हैंडलर को ट्रिगर करेगा। अगर div खाली बाहर शुरू होता है और a
तत्वों एक AJAX कॉल द्वारा बाद में भर दिए गए हैं, या कुछ उपयोगकर्ता इनपुट के परिणाम के रूप
$('div').on('click', 'a', function(ev) {
// middle click doesn't trigger this handler
});
यह दृष्टिकोण अत्यंत मूल्यवान है।
'mouseup'
काम करता है दोनों ब्राउज़र में काम करने के लिए mouseup
click
के बजाय दोनों दृष्टिकोण 1 कारणों और 2 का उपयोग करना।
// Approach 1 w/ mouseup
$('div a').on('mouseup', function(ev) {
// middle click **does** trigger this handler in Chrome and FF
});
// Approach 2 w/ mouseup
$('div').on('mouseup', 'a', function(ev) {
// middle click **does** trigger this handler in Chrome and FF
});
यहाँ mouseup
साथ JSFiddle है।
यह दिलचस्प है और कुछ मामलों में उपयोगी हो सकता है, क्योंकि mouseup
लगभग click
है। लेकिन mouseup
click
नहीं है, और मैं click
के व्यवहार के बाद हूं। मैं click
का एक हैकी mousedown; setTimeout; mouseup
अनुकरण बनाना नहीं चाहता हूं।
मुझे पूरा यकीन है कि उत्तर "नोप" है, लेकिन क्या click
हैंडलर ट्रिगर करने के लिए मध्य-क्लिक का कारण बनने के लिए एक क्रॉस-ब्राउज़र तरीका है? यदि नहीं, तो क्यों कारण हैं?
मैं आपके उत्तर की सराहना करता हूं, हालांकि मैंने सवाल में कहा था "मैं एक हैकी 'मूसडाउन बनाना नहीं चाहता; सेटटाइमआउट; माउसअप' क्लिक 'का सिमुलेशन।" क्लिक को पुनर्निर्मित करना एक बुरा विचार लगता है, लेकिन मैं फिर से पेशेवरों और विपक्ष का वजन करूंगा। – mwcz
और मैंने अपने जवाब में कहा कि यह मध्य बटन पर क्लिक करने का एकमात्र विश्वसनीय तरीका है, कोई विकल्प नहीं है। – adeneo
=== के बजाय === तुलना का उपयोग करना आवश्यक है? क्यूं कर? धन्यवाद। –