hash foo 2>/dev/null
: работает с zsh, bash, тире и золой.
type -p foo
: он работает с zsh, bash и ash (busybox), но не тире (он интерпретирует -p
в качестве аргумента.
command -v foo
: работает с zsh, bash, тире, но не зоной (busybox) (-ash: command: not found
).
Также обратите внимание, что builtin
недоступен с ash
и dash
.
Предполагая, что вы используете более новую версию lightlider, чем 1.1.3, вы должны иметь возможность .destroy () существующего экземпляра следующим образом:
var slider = $('#lightslider').lightSlider();
slider.destroy();
Для обеспечения безопасности вам нужно будет проверить слайдер - это что-то, прежде чем вы вызовете метод destroy!
$("#lightSlider").empty()
или $("#lightSlider").html('')
по какой-то причине не работали. Экземпляры световых индикаторов продолжали накапливаться с каждым новым представлением формы. Я не знаю почему. Также метод ("#lightSlider").lightslider().destroy()
не работал, и это может быть по какой-то нечетной причине, что я не могу определить, может быть, что-то связано с тем, как я манипулирую DOM, я не знаю.
Что, в конечном итоге, заключалось в том, чтобы вставить блок <ul id="lightSlider">...</ul>
в блок <div id="carousel-container">...</div>
. Затем с каждым новым представлением формы я удалил весь блок #lightSlider с помощью $("#carousel-container").html('');
. Затем я динамически воссоздал весь <ul id="lightSlider">...</ul>
с новым обновленным контентом. Вот рабочий код:
$("#carousel-container").html('');
var lightsliderstring = "<ul id=\"lightSlider\">";
for(i=1;i<thumbsArray.length;i++){
lightsliderstring += "<li>\n";
if( $("#as_feature").val() ){
lightsliderstring += " <h3>" + $("#as_feature").val() + " photo " + i + "</h3>\n";
}
lightsliderstring += " <img src=\"/" + thumbsArray[i] + "\" />\n";
lightsliderstring += "</li>\n";
}
lightsliderstring += "</ul>\n";
$("#carousel-container").html(lightsliderstring);
$('#lightSlider').lightSlider({
auto: true,
gallery: false,
item: 1,
loop: true,
slideMargin: 0,
thumbItem: 0
});