/ / jQuery-selected-Plugin: Hört nicht auf Touch-Ereignisse im iPad - jquery, jquery-chosen

jQuery-Plugin gewählt: nicht Touch-Event auf dem iPad zu hören - jquery, jquery-gewählt

Ich verwende ein von jQuery ausgewähltes Plugin für die MehrfachauswahlDropdown, alles funktioniert einwandfrei mit Desktop, aber in iPad, als ich versuchte, die ausgewählte Option durch Berührung abzuwählen (Mausklick-Ereignis funktioniert einwandfrei), hört es nicht auf Berührung (obwohl ich "touchend" -Ereignis geschrieben habe).

Welches Ereignis soll ich verwenden, um diese Arbeit zu machen?

Antworten:

1 für die Antwort № 1

jQuery Chosen Plugin hat tatsächlich diesen Fehler.

Getestet diesen Code in der Konsole http://harvesthq.github.io/chosen/ Es klappt

var x = document.getElementsByClassName("search-choice-close");
//search-choice-close is class of X button.
for (var i = 0; i < x.length; i++) {
x[i].addEventListener("touchend", function(e) {
this.parentNode.remove()
}, false);
}

1 für die Antwort № 2

Die Antwort von Said Kholov funktioniert für die vorhandenen Tags, aber nicht für neu erstellte Tags. Sie können Folgendes versuchen: (Nicht effizient, aber funktioniert)

 //Fix the remove item on touch devices
if (Modernizr && Modernizr.touch) {
$(".chosen-choices").on("touchend", ".search-choice-close", function(){
var $this = $(this);
var $select = $this.closest(".chosen-container").prev("select");
var toRemove = $.trim($this.parent().text());
var vals = $select.val();
vals = $.grep(vals, function(value) {
return $.trim(value).trim() !== toRemove;
});
$select.val(vals).trigger("chosen:updated");
});
}

0 für die Antwort № 3

Die einfachste und eleganteste Möglichkeit, dies zu lösen, besteht darin, ein CLICK-Ereignis aus dem TOUCH-Ereignis mit auszulösen modernizr.

$.getScript("/js/modernizr-custom.js", function() {

if (Modernizr && Modernizr.touchevents) {
$(".chosen-choices").on("touchend", ".search-choice-close", function(){
$(this).trigger("click");
});
}
});