2015-05-06 5 views
0

у меня есть это:Зачем мне нужно дважды щелкнуть, чтобы запустить это событие jQuery?

$(".slideDownArrow").click(function(){ 
    currentBlockIndex++; 
    $('.secondLevel li').eq(currentBlockIndex).trigger('click'); 
}); 

и когда я нажимаю на slideDownArrow это работает для меня и многих других людей, но не для всех - мой клиент должен нажать дважды, чтобы вызвать событие secondLevel li щелчка. Что может быть причиной этого и как я могу это исправить?

Функция secondLevel li нажмите:

$('.secondLevel li, .exteriorBox li').bind('click', function(){ 

    var el = $(this), 
    elIndex = el.index(); 
    $('html, body').animate({ 
     scrollTop: hArray[elIndex] 
    }, 1000); 
}); 
+2

Пожалуйста, напишите полный пример кода. – j08691

+0

@ j08691 редактировал мое сообщение с остальной частью кода для него. – Xeen

+0

try event.stopPropagation(); event.preventDefault(); –

ответ

0

Идите прямо к HtmlElement click method вместо:

$('.secondLevel li')[currentBlockIndex].click(); 

Вместо того чтобы использовать get(), [] возвращает HTML-элемент. click - это встроенный генератор событий щелчка.

Поскольку событие в ответ на щелчок пользователя, вы можете игнорировать любые комментарии по причине безопасности. Я пробовал это во всех браузерах и никаких проблем.

+0

Спасибо за ответ, если это поможет, я приму это завтра :) до сих пор, для меня он продолжает работать, увидит о клиенте – Xeen

+0

К сожалению, это не решило проблему. – Xeen

+0

Позор. Работал в большинстве ситуаций, в которые я попал. На каком конкретном браузере/версии он не работает? –

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