2016-01-03 2 views
2

Мне нужна небольшая помощь. Некоторое время я борюсь с какой-то проблемой. Мне нужно вызвать функцию загрузки jquery каждый раз, когда я нажимаю кнопку. Для запуска функции загрузки я предполагаю, что мне нужно обновить этот конкретный div или загрузить этот div снова.Как вызвать или вызвать функцию загрузки jquery несколько раз?

Моя цель:

, когда я нажимаю на кнопку Я хочу погрузо-ДИВ, чтобы показать, и я хочу .image-контейнер снова загружать. Я полагаю, что это должно вызвать функцию загрузки jquery, которая скроет load-div при загрузке .image-container.

Это мой код:

$(".image-container").load(function(){ 
    $("#loading-div").hide(); 
}); 

$("#button").on('click', function(){ 
    $("#loading-div").show(); 
    $(".image-container").load("index.php"); // load again div that sholud trigger upper function 
}); 
+0

, так как он уже был загружен .. Это может понадобиться обратный вызов ?? – Zak

ответ

0

предположим, что я хочу, чтобы загрузить данные с сервера конкретного сНу тега непрерывно. Вперед я использую метод setinterval jquery. пример:

setinterval(function(){ 
$("div1").load("url","data you want to send to your server");      
         },1000); 

Примечание: метод загрузки работает только для «получить» method.in выше код второго параметра нагрузки не является обязательным.

3

Попробуйте

$("#button").on('click', function(){ 
    $("#loading-div").show(); 
    $(".image-container").load("index.php", function() { 
     $("#loading-div").hide(); 
    }); 
}); 
+0

только показывает div, но он не скрывает его. Я поставил предупреждение выше скрытой функции, и он не вызывает его – bobby

0

Ммм, просто отдельная нужную логику до/после загрузки от обработчиков?

function loadSome(el, data) { 
    $("#loading-div").show(); 
    el.load(data, function() { 
    $("#loading-div").hide(); 
    }); 
} 

function loadImage() { 
    loadSome($(".image-container"), "index.php"); 
} 

loadImage(); 
$("#button").on('click', function(){ 
    loadImage(); 
}); 

Или более jQuery -WAY:

jQuery.fn.progressedLoad = function (data, progressElement) { 
    $(progressElement).show(); 
    // add more complex load-progress logic here... 

    return this.load(data, function() { 
     $(progressElement).hide(); 
    }); 
} 

... 

$(".image-container").progressedLoad(
    {"url": "index.php"}, 
    $("#loading-div") 
); 
+0

. Я получаю тот же результат, что и в приведенном выше ответе, он показывает только, но он не скрывает загрузку-div – bobby

+0

1) желаемый контент загружается в '.image-container', или он просто показывает '# load-div', а затем ничего не делает? 2) какую версию jQuery вы используете? '.load()' может иметь список разных параметров и может вести себя как '.on (" load ", function() {})' в некоторых версиях uscases в версиях jQuery до 1.9 – ankhzet

+0

1) каждый раз, когда я нажимаю на содержимое кнопки .image-container меняется, но иногда он длится несколько секунд, поэтому я создал функцию, которая покажет # load-div до тех пор, пока не завершится загрузка 2) jquery-2.1.3 – bobby

Смежные вопросы