Przy użyciu skryptu Selectize.js próbuję zainicjować dynamicznie wstępnie wybrać jedną pozycję z listy bez wywoływania zdarzenia onItemAdd
. W poniższym kodzie, zdarzenie jest wyzwalany nawet jeśli parametr silent
jest truthy:Selectize.js: Zdarzenie onItemAdd wyzwalane po cichym dodaniu pozycji
$(function() {
$('select').selectize({
onItemAdd: function() {
alert("Add item");
}
});
// this triggers an the event
$('select')[0].selectize.addItem('2', true);
});
JSFiddle: http://jsfiddle.net/zuzat0dc/1/
Zgodnie z dokumentacją:
addItem(value, silent)
: "wybierze opcję" element. Dodaje go do listy w aktualnej pozycji karetki. Jeśli "cichy" jest zgodny z prawdą, żadne zdarzenie zmiany nie zostanie uruchomione na oryginalnym wejściu.
Każdy pomysł, jak uniknąć wyzwalania zdarzenia onItemAdd
? Czy parametr silent
zadziałał, czy też powinienem użyć zdarzenia change
?
Uwaga: Można używać 'off (...)' 'i na (...)' funkcji wyłączyć obsługi, dodać element następnie ponownie włącza się do obsługi, ale to nie wygląda tak, jak powinno się to odbywać =/ –
Co robisz? .wyłączyć i włączyć()? Oryginalny wybór? – temuri
Jestem dość pewny, że to były metody zdarzeń '.on()' i '.off()' z [selectize instance] (https://github.com/selectize/selectize.js/blob/master/docs /api.md#methods_events) –