このコードには2つの問題があります。
1は常にゼロです。追加されるべきではない$(container + ' meta[data-level="' + level + '"]').length == 0
追加の呼び出しを作成するため、これを知っていますが、とにかく追加されます。create_views(1);
2 dpUniSliderは、ajax呼び出しを介して作成されたliを認識しないため、機能しません。成功メッセージに移動すると正常に機能しますが、外部関数は機能しません。問題は、それをajaxの成功の中に含めると、ループの下にあるため、何度も呼び出されることです。
//Show levels using ajax, before slider is activated
function create_views(level) {
$.ajax({
url: "actions.php",
type: "GET",
data: "show_level=" + level,
cache: false,
success: function (data) {
var view = '<li data-level="' + level + '">' + data + '</li>';
var container = ".slides_container";
if ($(container + ' meta[data-level="' + level + '"]').length == 0) {
$(container).append(view);
} else { //check if element exists, if yes overwrite it.
//$(container + ' meta[data-level="' + level + '"]').replaceWith(view);
alert("Exists");
}
}
});
}
//Loop through all levels and display views
//level count can be rewritten to come from DB and not be hardcoded like now
var levels = 2;
for (var i = 1; i <= levels; i++) {
create_views(i);
} // for loop
create_views(1); //test, delete this
//Activate slide
var unislider = $(".slides_container").dpUniSlider({
//loop: false,
draggable: false
});