2013-04-16 23 views
2

У кого-нибудь были проблемы с Corodova 2.5.0 и jQuery 1.8.x/1.9.1 при использовании jQuery.find()? Кажется, что find() возвращает пустые объекты.Windows Phone 8/Cordova/jQuery .find()

Это было моей отправной точкой:

HTML

... 

<ul id="here"> 
</ul> 

Javascript

.. 

$('#here').append('<li data-test="test1">first</li>'); 
$('#here').append('<li data-test="test2">second</li>'); 
$('#here').append('<li data-test="test3">third</li>'); 

var lis = $('#here').find('li'); 
console.log(lis); 
$.each(lis, function (ind, rec) { 
    console.log(rec); 
}); 

консоль отображает:

log: {} 
log: {} 
log: {} 

же код полностью работоспособен в настольном Разглядеть rs - без cordova :)

+0

Является ли он полностью функциональным в Windows Phone 8 без Кордовы? – MBillau

+0

Кажется, работает на рабочем столе IE10 и браузера IE10 в телефоне Windows 8. – user2285976

ответ

0

Я думаю, что IE10 на WP8 не может распечатать содержимое объекта «rec», даже если элементы «li» фактически добавляются. Я примерил Кордова (V2.4.0) Windows Phone 8 приложения с JQuery (V1.7.1) и, кажется, работает нормально с кодом ниже

$.each(lis, function (ind, rec) { 
    console.log(rec.innerHTML.toString()); 
}); 

Output, как показано ниже:

ScriptNotify :: first 
ScriptNotify :: second 
ScriptNotify :: third 

Doing outerHTML вместо отпечатков:

ScriptNotify :: <li data-test="test1">first</li> 
ScriptNotify :: <li data-test="test2">second</li> 
ScriptNotify :: <li data-test="test3">third</li> 

Полный код из index.html:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <meta name="format-detection" content="telephone=no" /> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 
     <link rel="stylesheet" type="text/css" href="css/index.css" /> 
     <title>Hello World</title> 
    </head> 
    <body> 
     <div class="app"> 
      <h1>Apache Cordova</h1> 
      <ul id="here"> 
      </ul> 
     </div> 
     <script type="text/javascript" src="lib/jquery-1.7.1.js"></script> 
     <script type="text/javascript" src="cordova-2.4.0.js"></script> 
     <script> 
     window.console = { 
     log: function (str) { window.external.Notify(str); } 
     }; 

     $('#here').append('<li data-test="test1">first</li>'); 
     $('#here').append('<li data-test="test2">second</li>'); 
     $('#here').append('<li data-test="test3">third</li>'); 

     var lis = $('#here').find('li'); 
     console.log(lis.length.toString()); 
     $.each(lis, function (ind, rec) { 
     console.log(rec.outerHTML.toString()); 
     }); 
     </script> 
    </body> 
</html> 
+0

Спасибо - я перейду на Кордову 2.4.0 и jQuery 1.7.1, так как я не смогу получить код в 2.5.0 и 1.8.1 – user2285976

+0

Произошло ли изменение в cordova 2.4.0 и jQuery 1.7 и не работает - тестируются ли с эмулятором или устройством? – user2285976

+0

Протестировано на обоих. Я обновил ответ выше, чтобы включить полный код из index.html. Надеюсь, что это работает. –

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