2014-01-10 5 views
1

Это прекрасно работает во всех браузерах, кроме IE, может кто-нибудь объяснить, почему я могу это исправить. Я отображение индекса в JavaScript Object на основе индекса выбранного индекса моего выпадающего спискаЭтот код работает во всех других браузерах, за исключением IE

$(document).ready(function() { 
var pdata = [{ Name: "Apples", Price: 1.99 },{ Name: "Bananas", Price: 2.45 } ]; 

    $('#produceTMPL').tmpl(pdata).appendTo('#produceList'); 

     $(document).ready(function() { 


     $('#add1').click(function() { 
     var selected = $('#produceList option:selected').index(); 

     item = pdata[selected]; 

     console.log(selected); 
     $('#cart').append('<p>' + item.Name + ', ' + item.Price + '</p>'); 




    }); 
    }); 

HTML:

 <div> 
    <select id="produceList"> 
    <option>make a selection</option> 
    </select> 
+0

Вы открыли консоль для веб-разработчиков? F12 –

+5

Как это «не работает» в IE? Какая версия IE? Что оно делает? Вы видите какие-либо ошибки в консоли? –

+4

Почему у вас есть '$ (document) .ready (function() {' внутри '$ (document) .ready (function() {'? –

ответ

1

item является защищенное свойство объекта окна в IE. Просто переименуйте переменную или объявите ее правильно (используя var) в своей функции.

0

console.log выдает ошибку в IE, так, чтобы быть на более безопасной side НЕ используйте console.log без проверки, поддерживает ли браузер его или нет.

try{ 
    if(console && console.log) console.log('message') 
}catch(e){} 

ИЛИ

if ('undefined' !== typeof console){console.log(message); } 
+0

IE поддерживает 'console.log'. Для этого нужно открыть консоль (инструменты dev) для этого. Вам нужно открыть инструменты dev, а затем перезагрузить –

+0

да, и вы почти никогда не имеете его открылся в первую очередь. – Rao

+0

Вот почему я предложил открыть его, а затем перезагрузить страницу. –

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