Имам този елемент:
<div data-load-module="list-users"></div>
И този JS да зареди специфичния модул:
if($("[data-load-module]").length) {
var datas = $("[data-load-module]").attr("data-load-module");
var url = "assets/php/ajax/" + datas + ".php";
$(this).load(url, function() {
...
});
}
Линията $(this).load()
не зареждайте модула ми.
Не искам да добавям id
или друг class
.
Как мога да посоча, че искам съдържанието да се зарежда в this
div?
Благодаря.
Отговори:
1 за отговор № 1Във вашия код this
не се отнася за елемента div, който обикновено може да се отнася window
обект.
Ако искате да заредите съдържанието в същото div, кеширайте селектора в променлива и го използвайте.
var $div = $("[data-load-module]");
if($div.length) {
var datas = $div.attr("data-load-module");
var url = "assets/php/ajax/" + datas + ".php";
$div.load(url);
}
В случай, че има няколко divs след това използвайте each()
метод за повторение по тях и вътре в извикването this
за препращане на елемента.
$("[data-load-module]").each(function(){
var datas = $(this).attr("data-load-module");
var url = "assets/php/ajax/" + datas + ".php";
$(this).load(url);
})
0 за отговор № 2
$(".data-load-module").each(function(i) {
$(this).load(...)
});
Осигуряване .data-load-module
е вашият клас, тогава можете да се позовавате на divs от този клас по този начин. В противен случай this
не споменава нищо в кода ви.