2016-04-23 9 views
1

Am versuchen, eine Bild-Upload-Button mit js zu erstellen, dass die folgenden Funktionen .... auf Klick (erreicht)Wie kann ein Ereignis für ein Element ein Bootstrap-Popover auf einem anderen Element verursachen?

1) Pop Up Dateiauswahl

in einem Bootstrap

2) Vorschaubild ausgewählt haben Popover, wenn das Bild aus Dateiauswahl ausgewählt wird ...

Die Schaltfläche enthält eine Eingabe-Tag des Typs Datei, mit einer CSS-Klasse (.file-Eingänge), die keine Anzeige auf das Element anwendet, also kann ich nicht hinzufügen das Popover zum Eingabe-Tag, da Popovers nicht mit versteckten Elementen funktionieren, wie kann ich das Popover auf der sichtbaren Schaltfläche anzeigen, wenn der Wert des Eingabe-Tags geändert wird

Vielleicht so etwas wie so

$('#photo').change()(function(){ 
 
    
 
if(!($("#photo").val() == '')){ 
 
    
 
    //Use bootstrap popover to show image over button 
 
    
 
     
 
    }); 
 
    
 
    });

Hier ist die Schaltfläche Code

<button class="btn btn-default" rel="popover" id="btn-photo"> 
 
    <i class="glyphicon glyphicon-picture"></i> 
 
    <input class="file-inputs" type="file" name="photo" id="photo" /> 
 
</button>

Und hier ist die js

$(document).ready(function() { 
 

 
    var img = ''; 
 

 
    //Event to display file chooser 
 
    $('.post-box').on('click', '#btn-photo', function() { 
 
    event.preventDefault(); 
 
    var elem = document.getElementById('photo'); 
 
    if (elem && document.createEvent) { 
 
     var evt = document.createEvent("MouseEvents"); 
 
     // Event(event_type:String, bubbles:Boolean, cancelable:Boolean) 
 
     evt.initEvent("click", false, true); 
 
     elem.dispatchEvent(evt); 
 

 

 
    } 
 

 

 
    }); 
 

 
    // Show popover on button 
 

 
    $("#btn-photo").popover({ 
 
    placement: 'top', 
 
    trigger: 'click', 
 
    title: 'Add a picture to your post! :)', 
 
    content: img, 
 
    html: true 
 
    }); 
 
    // }); 
 

 
});

Antwort

1

Eine schnelle Antwort ist so etwas wie diese:

$("#yourbutton").on("yourevent", function(){$("#otherbutton").trigger("click");}); 
+0

dank @Enrico, aber die erste #yourbutton sollte mit einem Änderungsereignis sein #datei, die Dateieingabe Tag ist in #herherbutton begraben, so dass diese Methode wird den Dateiwähler wieder aufgetaucht, aber ich werde versuchen, die Idee auf eine andere Weise zu verwenden ... danke –

+0

Nun, für Ihren speziellen Fall möchten Sie wahrscheinlich Ihre eigenen Popover erstellen weil ich mir nicht sicher bin, ob du Bilder platzieren kannst Inside-Bootstrap-Popover. Wenn dies der Fall ist, könnte ich Ihnen helfen, es zu tun – Enrico

+0

Eventhough Bilder können in Bootstrap Popovers hinzugefügt werden, würde ich Ihre Hilfe mit einem benutzerdefinierten Popover lieben, danke –

Verwandte Themen