Ich habe ein Bestätigungsmodal nach einem Klick geklickt und in diesem Modal hat zwei Tasten, "Abbrechen" und "Hinzufügen". Das "Hinzufügen" wird Daten in seine eigene Artikelliste ausgeben und es funktioniert gut. Aber wenn ich auf "Abbrechen" klicke und dann zurück gehe, um dieses Modal wieder zu zeigen, wenn ich dann auf "Hinzufügen" klicke, wird meine Artikelliste mal aufgezehrt, je nachdem wie lange ich vorher auf "Abbrechen" klicke. Ich versuche .data ("bs.modal", null) oder .off ('click') bei .on ("hidden.bs.modal"). Keine von ihnen kann mein Problem beheben.Wie verhindert man Multi-Trigger in Bootstrap-Modal?
Die Probe Link Sample
<div class="major">
<button class='btn btn-danger btn-xs' type="submit" name="additem" value="Add"><span class="fa fa-times"></span> add</button>
<ul id="itemlist" data="0">
</ul>
</div>
<div class="major">
<button class='btn btn-danger btn-xs' type="submit" name="additem" value="Add"><span class="fa fa-times"></span> add</button>
<ul id="itemlist" data="100">
</ul>
</div>
<!-- Modal -->
<div id="confirm" class="modal hide fade">
<div class="modal-body">
Are you sure?
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-primary" id="add">Add</button>
<button type="button" data-dismiss="modal" class="btn">Cancel</button>
</div>
</div>
das Skript,
$('button[name="additem"]').on('click', function(e){
var $major=$(this).closest('.major');
e.preventDefault();
$('#confirm').modal({ backdrop: 'static', keyboard: false })
.one('click', '#add', function (e) {
var num = parseInt($major.children("#itemlist").attr("data")) + 1;
$major.children("#itemlist").append("<li>new item" + num + "</li>");
$major.children("#itemlist").attr("data", num);
});
});
$("#confirm").on("hidden.bs.modal", function(){
$(this).data("bs.modal", null);
$("#add").off("click");
});
kann u schaffen Geige oder zupfen für die Ausgabe:
Aktualisiert Geige finden Sie unter? –
Ja, habe ich. über dem Code. Danke – user2189138