ismon
Lieutenant
- Registriert
- Dez. 2006
- Beiträge
- 717
Guten Tag zusammen,
ich rätsel jetzt schon eine halbe Ewigkeit an folgendem Problem.
Ich stelle eine Liste von Einträge über jquery mobile da.
Mit einem Swipe über einen Eintrag soll der entsprechende Eintrag entfernt werden.
Dazu öffnet sich nach dem Swipe ein Popup wo der User "OK" drücken muss.
Hat der User "OK" geklickt wird das Element aus der Liste entfernt und es soll weiterer Code ausgeführt werden (in meinem Beispiel nur ein alert()).
Das Funktioniert Grundsätzlich auch alles. Es gibt nur ein Problem:
Wenn ich das erste Element aus der Liste entferne läuft alles wie es soll. Das Element wird gelöscht und der folgende Code (alert) wird ausgeführt.
Wenn ich dann allerdings ein weiteres Element löschen wird diese auch korrekt gelöscht aber das nachfolgende Code wird zweimal ausgeführt (also zwei alert).
Wenn ich dann noch ein Element lösche wird der Code dreimal ausgeführt usw.
Hier ein Auszug aus dem Code:
HTML:
JavaScript:
Ich hoffe das mir jemand einen Tipp geben kann.
Danke schon mal.
ich rätsel jetzt schon eine halbe Ewigkeit an folgendem Problem.
Ich stelle eine Liste von Einträge über jquery mobile da.
Mit einem Swipe über einen Eintrag soll der entsprechende Eintrag entfernt werden.
Dazu öffnet sich nach dem Swipe ein Popup wo der User "OK" drücken muss.
Hat der User "OK" geklickt wird das Element aus der Liste entfernt und es soll weiterer Code ausgeführt werden (in meinem Beispiel nur ein alert()).
Das Funktioniert Grundsätzlich auch alles. Es gibt nur ein Problem:
Wenn ich das erste Element aus der Liste entferne läuft alles wie es soll. Das Element wird gelöscht und der folgende Code (alert) wird ausgeführt.
Wenn ich dann allerdings ein weiteres Element löschen wird diese auch korrekt gelöscht aber das nachfolgende Code wird zweimal ausgeführt (also zwei alert).
Wenn ich dann noch ein Element lösche wird der Code dreimal ausgeführt usw.
Hier ein Auszug aus dem Code:
HTML:
HTML:
<div id="confirm" class="ui-content" data-role="popup" data-theme="none">
<div class="ui-grid-a">
<div class="ui-block-a">
<a id="yes" data-role="button" data-mini="true" data-inline="true" data-icon="check" data-theme="b" data-rel="back">Mark as read?</a>
</div>
</div>
</div><!-- /popup -->
JavaScript:
Code:
$( document ).on( "pageinit", "#feed", function() {
// Swipe to remove list item
$( document ).on( "swiperight", "#entrielist li.ui-li", function( event ) {
$.event.special.swipe.horizontalDistanceThreshold=120;
var listitem = $( this ),
// These are the classnames used for the CSS transition
dir = event.type === "swipeleft" ? "left" : "right",
// Check if the browser supports the transform (3D) CSS transition
transition = $.support.cssTransform3d ? dir : false;
confirmAndDelete( listitem, this );
});
});
Code:
function confirmAndDelete( listitem,li_elemt, transition ) {
var curren_li_elemt=li_elemt.getAttribute("id");
// Highlight the list item that will be removed
listitem.addClass( "ui-btn-down-d" );
$( "#confirm" ).popup( "open" );
// Proceed when the user confirms
$( "#confirm #yes" ).on( "click", function() {
listitem.remove();
$( "#entrielist" ).listview( "refresh" );
alert("Dieser Code wird mehrfach ausgeführt");
});
}
Ich hoffe das mir jemand einen Tipp geben kann.
Danke schon mal.