2013-03-05 6 views
5

मैं कुछ खोज किया है और मैं केवल कल्पना करने की है कि मैं attach events to the buttons that cause it to close.कैसे घटना को खारिज पॉपओवर करने के लिए एक समारोह संलग्न करने के लिए (ट्विटर बूटस्ट्रैप)

हालांकि, यह मामला संभाल नहीं करता है सकते हैं कर लिया है जब उपयोगकर्ता बस कहीं और क्लिक करता है। मैं एक घटना को ट्रिगर करना चाहता हूं क्योंकि पॉपओवर लुप्त हो रहा है और हटाया जा रहा है। किसी के पास कोई सुझाव है?

अद्यतन: मैं नीचे इस सवाल का जवाब करने की कोशिश की और यह काम करने के लिए प्राप्त करने के लिए शुल्क नहीं लगा पाया है, हालांकि यह स्पष्ट रूप से jsfiddle उदाहरण से करना चाहिए। पुस्तकालयों और सेटअप के साथ कुछ संघर्ष हो सकते हैं जिनका मैं उपयोग कर रहा हूं।

यहाँ कोड मैं का उपयोग कर रहा है:

this.$el 
    .popover({ 
     html: true, 
     title: 'Schedule an appointment', 
     content: '<div id="' + this.popoverView.cid + '" class="event-popover"></div>', 
     placement: placement 
    }) 
    .popover('show') 
    .on('hidden', function(e) { 
     alert('hidden'); 
    }); 

यह पॉपओवर बनाता है यह पता चलता है, और उसके बाद on hidden घटना कहते हैं। पहले दो काम सही ढंग से। हालांकि, रद्द बटन (data-dismiss='modal') पर क्लिक करते समय या तीसरा व्यक्ति स्क्रीन को बंद करने के लिए स्क्रीन पर कहीं और क्लिक करके ट्रिगर नहीं करता है।

पुस्तकालय जो मैं उपयोग कर रहा हूं वे हैं: require.js, backbone.js, marionette.js

मैं jsfiddle क्लिक उपयोग करने के लिए संशोधित कर दिया है और यह अभी भी काम करता है: http://jsfiddle.net/zj37u/

किसी के रूप में सुझाव क्यों मेरा काम नहीं कर रहा हो सकता है है या मैं इसे कैसे डीबग कर सकते हैं? मैंने पहले से ही कुछ बदलावों की कोशिश की है।

उत्तर

10

hide और hidden ईवेंट है जिसे आप पॉपओवर पर सुन सकते हैं। hide तब होता है जब पॉपओवर फीका हो जाता है और hidden पूर्ण होने पर होता है।

एचटीएमएल:

<a href="#" id="button" 
     class="btn danger" 
     rel="popover" 
     data-original-title="title" 
     data-content="content">popover</a> 

जे एस:

var $popover = $("a[rel=popover]").popover({ 
    trigger: "hover" 
}).click(function(e) { 
    e.preventDefault(); 
}); 

$popover.on("hidden", function(e) { 
    alert("hidden"); 
}); 
एक jsfiddle रूप

इसके अलावा

यहाँ एक चेतावनी प्रदर्शित जब भी आप पॉपओवर लिंक से दूर माउस ले जाते हैं का एक उदाहरण है: http://jsfiddle.net/Ny5Km/4/

अद्यतन:

बूटस्ट्रैप संस्करण v3.3.5 के लिए, popover-events

$popover.on("hidden.bs.popover", function(e) { 
    alert("hidden.bs.popover"); 
}); 
+0

महान जवाब देख सकते हैं और मैं jsfiddle उदाहरण के रूप में अच्छी तरह से सराहना करते हैं। दुर्भाग्य से मैं इसे अपने वर्तमान सेटअप के साथ काम करने में असमर्थ था। कोई सुझाव? – Matt

+1

बूटस्ट्रैप का कौन सा संस्करण आप उपयोग कर रहे हैं? यह नवीनतम (2.3.1) के साथ काम करता है लेकिन पुराने संस्करण के साथ काम नहीं कर रहा था (मैंने पहले 2.2.2 की कोशिश की थी) – hajpoj

+0

यह काम करता है! यह समस्याएं होनी चाहिए। धन्यवाद! – Matt

संबंधित मुद्दे