Как изменить функцию селектора после клика

0

Я пытаюсь создать некоторый jquery, он позволит пользователю нажать на div, чтобы сделать http-запрос. Основная цель, над show/hide, заключается в сокращении HTTP-запросов, поскольку содержимое загружается только тогда, когда пользователь его запрашивает.

Моя функция ниже и, по-видимому, работает некорректно. Но теперь мне нужно "зациклировать" функцию или создать другой экземпляр.

Цель этого - позволить пользователю щелкнуть один и тот же div и скрыть контент.

Любые идеи или предложения о лучших способах этого сделать очень приветствуются!

$(document).ready(function () {
    $('.windguru').click(function () {
        $('.loader').show(400, null, function () {
            alert('loader has been shown')
            $('.windguru-content').load("windguru1.html", function () {
                alert('iframe content loaded, will now close the loader')
                $('.loader').hide(500);
            });
        });
    });
});

Вот jsfiddle: http://jsfiddle.net/5CJ74/

  • 0
    Используйте функцию переключения
  • 0
    if (target.text! = "") {target.hide ()} else {target.loader.load ()}
Показать ещё 3 комментария
Теги:

1 ответ

0

Простым способом циклы является переключение фиктивного класса на элемент DOM. В вашем случае вы хотите, чтобы действия show-hide зависали при нажатии на $ ('. Windguru'), а затем просто $('.windguru').addClass('loaded') когда вы получаете ответ ajax и делаете $('.windguru').removeClass('loaded') когда, при нажатии, $('.windguru').hasClass('loaded'). Так что вот так

  1. Проверьте, что $('.windguru').hasClass('loaded')
  2. if no then, $('.windguru').addClass('loaded') и делает остальную загрузку ajax
  3. если да, то $('.windguru').removeClass('loaded') и скрыть содержимое.

Вы можете улучшить это дальше,

  • кеширование объектов jQuery вместо передачи селектора каждый раз
  • Использование запроса ajax только тогда, когда данные запрашиваются в первый раз.
  • 0
    я не знаю, смогу ли я правильно следовать этому Shoaib. Я обновил jsfiddle: jsfiddle.net/5CJ74/9
  • 0
    Хорошо, мне удалось выяснить, как будет работать класс добавления / удаления. Не могли бы вы объяснить, как зациклить / проверить класс «загружен», так что нажатие на заголовок закрывается? Большое спасибо, обновил jsfiddle: jsfiddle.net/CeKKx/1
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню