2017-01-02 3 views
-1

У меня есть ul, давайте предположим, что 10 элементов li. Внутри каждого li-элемента есть img, что при нажатии открывается модально. Я хочу сделать функцию, когда вы отправляете кому-то ссылку на конкретный img (скажем, на www.aaa.com/#/image/3), чтобы открыть третье изображение. Пока у меня нет успеха. В списке у меня есть: $(document).on('click', 'li img', function(){ ... } Вот вопрос, как имитировать конкретное событие click img, потому что я сделал этот модальный для работы с this, он не очень специфичен, как номер 3 из URL-адреса.Запустить событие click с помощью JQuery

ps Я не хочу использовать серверную сторону, поэтому я использую #.

+0

Возможный дубликат [jQuery.click() против OnClick] (http://stackoverflow.com/questions/12627443/jquery-click-vs-onclick) –

+0

Просьба предоставить [mcve] – zer00ne

+0

, пожалуйста, обратитесь к http://stackoverflow.com/questions/12627443/jquery-click-vs-onclick для функций щелчка как в javascript, так и в jquery –

ответ

3

Вы можете использовать document.location.hash для получения текущего hash по ссылке, и если есть хэш, и это изображение - вызвать click на этом изображении:

$(function() { // on page load 
 
    var hash = document.location.hash; 
 
    if (hash) { // check if hash exists 
 
    m = hash.match(/#\/image\/(\d+)/) // check the structure 
 
    if (m) { 
 
     $('ul#specific-ul li img').eq(m[1] - 1).click() // trigger click on the relevant image 
 
    } 
 
    } 
 
})

+0

Вот что я делаю. Но когда вы получаете ссылку, я сделал простой способ переключения, чтобы проверить, что такое ссылка, и если это изображение, оно должно быть открыто модально с этим изображением. Дело в том, что '$ ('li img'). Eq (imgIndex) .trigger ('click');' не работает. Я не знаю почему. У меня есть прикрепленный прослушиватель событий к li img, но он все еще не делает событие click: | –

+0

Можете ли вы создать пример того, что вы делаете? Без рабочего примера будет трудно помочь – Dekel

+0

https://output.jsbin.com/lipahudaxe (в правом верхнем углу есть редактирование в jsbin). И то, что я пытаюсь сейчас, - это когда вы получаете ссылку, попробуйте нажать на конкретный img, а не скопировать код. Я делаю это в другой функции, вызванной загрузкой сайта: 'function setupImage (imgIndex) { .... var total = $ ('ul.images-list li'). Length + 1; if (imgIndex <= total) { $ ('li img'). Eq (imgIndex) .trigger ('click'); } } ' –

1

Чтобы вызвать событие щелчка использовать $('#image3').trigger('click')

0

Используйте атрибут ID. если вы добавили свой li в цикл thn, возьмите переменную, добавьте ее с id в цикле. не забудьте сделать переменную ++.

Когда вы нажмете на изображение, как с идентификатором = image5 вы можете использовать этот $("#image5").click(function(){ // Do something });

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