2013-03-06 2 views
0

Я новичок в веб-разработке.JavaScript/событие Jquery click на IE8 не работает должным образом

У меня возникли проблемы с кнопками моего проекта. Эта строка кода работает во всех браузерах, за исключением IE8:

$("#SampleBtn").live("click", function(){ 
    console.log('It works!'); 
}); 

не реагирует так, как это должно быть при нажатии. В этом примере предполагается напечатать «Это работает!», Видимо, ничего не происходит. Однако, если пользователь нажимает кнопку без отпускания (keydown) более 1 секунды, он работает.

Я не уверен, если проблема возникает. Имеет ли это какое-то отношение к событию .live или click?

Любая помощь будет высоко оценена. Благодаря!

+1

Метод 'live' был устаревшим в 1.7 и ** удален ** в 1.9. Какую версию ты используешь? Альтернативой является использование 'on'. – elclanrs

+2

Какую версию jQuery вы используете? '$ .fn.jquery' в консоли, чтобы узнать. Также с IE консольный объект не существует, пока консоль разработчика не будет открыта. Если вы попытаетесь получить доступ к консоли до этого времени, вы получите сообщение об ошибке. –

+0

Я использую 1.8.2. Я попробовал 'on', но теперь он даже не работает в Chrome – Kimpoy

ответ

0

Мы обнаружили, что на местном уровне, нет никаких проблем с кнопками, однако, когда приложение запускается на нашем сервере Node.js, что там происходит вопрос , Это вызывает ошибку на IE8:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png',sizingMethod='scale'); 

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

background-image: url('images.png'); 

Но спасибо всем за время обмена идеями по этому вопросу. :)

1

У IE8 немало проблем, но это определенно должно работать. Мое лучшее предположение - вызов console.log не работает (по той причине, о которой я упоминал в комментариях).

Попробуйте изменить console.log на номер alert и посмотреть, будет ли он работать.

попробовать Также с помощью delgated version of on

$(document).on('click', '#SampleBtn', function(){ 
    console.log('It works!'); 
}); 
+0

В консоли console.log нет никаких проблем. Во всяком случае, я собираюсь обновить наше приложение на нашем сервере, используя ваш ответ. Надеюсь, он работает – Kimpoy

+0

Вам нужна только делегированная форма, если кнопка добавлена ​​в DOM после создания привязки. Если это статический элемент, ваш исходный код должен работать. – Barmar

+0

Это верно, и не используя делегированную форму является более предварительным и устойчивым в ситуации, когда у вас есть только несколько элементов для привязки. Сказав это, я предположил (возможно, неправильно), что @Kimpoy использовал делегированную живую привязку по какой-то причине. –

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