JQuery триггер («клик») динамически загружаемого контента

0

Я пишу веб-страницу, которая использует карту изображения. Изображение и карта загружаются динамически. Если я нажму на элемент области, загрузится новый контент. Также url изменяет свой хэш (например, index.php # somepage). У меня есть три слоя страниц, у основного слоя (домашняя страница) есть собственное изображение с картой (index.php), второй слой предлагает новую картинку + map (index.php # somepage), а третий слой открывает оверлей второй слой, поэтому изменение хэша (index.php # somepage_somesubpage).

Теперь я хочу иметь возможность отправить кому-то ссылку на index.php # somepage_somesubpage. Поэтому я нарезаю хэш и запускаю метод click-imagemap на первом уровне для загрузки index.php # somepage при загрузке страницы. Я добавил обратный вызов на это, назвав желаемый клик-метод обновленной карты изображений. Это не работает по какой-то причине, я не могу понять. Я могу открыть index.php # somepage, но когда я ввожу index.php # somepage_somesubpage, я получаю тот же результат.

Вот код $ (document).ready:

var cont = $('#content');

$( document ).ready(function() {
    cont.load('pages/home.php', function(responseTxt,statusTxt,xhr){
        if(statusTxt=='error')
        {
            cont.load('404.php');
        }
        lineparser('#content'); //Perform some fancy stuff on the page

        var hash = location.hash.replace('#', '');

        if (hash != ''){
            if(hash.indexOf('_') > 0)
            {
                //open page with content

                $('area[href~="#' + hash.slice(0, hash.indexOf('_')) + '"]').first().trigger("click", function(){
                    $('area[href~="#' + hash + '"]').first().trigger("click");
                });
            }
            else{
                //open menu page

                $('area[href~="#' + hash + '"]').first().trigger("click");
            }
        }
    }); 
});
Теги:

1 ответ

0

Я решил проблему следующим образом:

$('area[href~="#' + hash.slice(0, hash.indexOf('_')) + '"]').first().trigger("click", [hash]);

Затем я добавил следующее:

$(document.body).on('click', "map area", function(e, schachteln){
    ...
    if(schachteln){
        $('area[href~="#' + schachteln + '"]').first().trigger("click");
    }
}

Ещё вопросы

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