2012-06-12 2 views
3

Вот код: Это был я принимать данные из XML (это работает, уже тестировал без JQuery):Динамически помещать данные в выберите опцию выпадающего списка (JQuery)

<script> 
     $(document).ready(function(){ 
      var select = $('#mySelect'); 

      $.ajax({ 
       type: "GET", 
       url: "http://mobile.qmschrysant.nl/keuzemenu/keuzemenu.xml", 
       dataType: "xml", 
       success: function(xml) { 
       $(xml).find('menuitem').each(function(){ 
        var title = $(this).find('title').text(); 
        select.append("<option/><option class='ddheader'>"+title+"</option>"); 
         $(this).find('value').each(function(){ 
         var value = $(this).text(); 
         select.append("<option class='ddindent' value='"+ value +"'>"+value+"</option>"); 

         }); 
        }); 
        select.children(":first").text("please make a selection").attr("selected",true); 
        select.trigger('updatelayout'); 
       } 
      }); 
     }); 
    </script> 

это мой выбор опция (HTML):

<label for="selectmenu" class="select">Kies planning:</label> 
      <form> 
      <select id="mySelect" > 

       <option>loading</option> 
      </select> 
      </form> 

Теперь странная вещь, когда я включил этот скрипт JQuery:

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 

Тогда дроссель получил потрясающий вид, но не содержит никакой информации.
Когда я прокомментирую эту строку, droplist выглядит нормально, но теперь он содержит информацию (так что это доказывает, что она работает).

Но почему это не работает, когда я включаю строку jQuery? Я не могу найти проблему.

(смотри рисунок для возможно лучшего объяснения) enter image description here

EDIT: все включает в себя, что я использую:

<link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css"> 
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
+0

@dystroy Я использую IE, Opera (мой основной браузер) и Firefox, не хром на компьютере. Но firefox получил также опции для консоли (опера тоже), я буду смотреть. – Bigflow

+0

Хорошо.Извините, что я удалил свой комментарий, в котором я просил вас проверить проблемы с междоменным явлением и посмотреть на вкладке «Сеть инструментов разработчика Chrome», чтобы узнать, хорошо ли получен XML-файл. –

+0

@dystroy Я посмотрел в консоли Firefox, и да, он находит файл XML – Bigflow

ответ

1

OP «использовал новейший Jquery mobile.js и теперь все работает отлично ».

Это похоже на проблему совместимости.

Изменено:

<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script> 
<link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css"> 

к:

<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js" type="text/javascript"></script> 
<link href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" rel="stylesheet" type="text/css"> 
0

Это делает нет смысла для меня :(

Первые потребности сценария jQuery для работы, поэтому вы включили jQuery.

И

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 

линия не меняется вид с запятой.

+0

Я видел это как причину, по которой запрос ajax не был выполнен. Но, возможно, есть 2 включения jquery и несовместимость. –

+0

Я немного изменяю вопрос, ниже вы можете видеть, что я включаю. Код работает, вероятно, потому, что я также включил jquery/mobile (это сайт специально для мобильного использования). – Bigflow

1

У вас есть два раза импорт JQuery:

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 

Удалить самую старую одну (вторую строку).

Или, лучше, замените оба линий от:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

(перед включением Jquery мобильного)

Итак:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css"> 
<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script> 
+0

Я пробовал ваш последний ответ, но это не сработало, однако, когда я заменяю '' с '' он действительно работает (только с нормальным расположением дросселя) Так может быть, ошибка в новом jQuery? – Bigflow

+0

Я знаю, что это работает без интерфейса: [Я попробовал это в скрипке] (http://jsfiddle.net/dystroy/RwgxF). Я просто закодировал XML-файл, чтобы избежать проблем с перекрестными доменами. –

+0

Нашел его, ну .. kinda, я использовал новейший jquery mobile.js, и теперь все работает отлично, возможно, устаревший содержит ошибку или что-то в этом роде. но спасибо за вашу помощь! – Bigflow

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