2012-11-10 43 views
2

我想使用挖空和jquerymobile,並不能得到它的工作。 這裏是我的代碼:JqueryMobile挖空和未捕獲的錯誤:NOT_FOUND_ERR:DOM例外8

<!DOCTYPE html>  
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <script src="/nw/scripts/jquery-1.8.2.js"></script> 
    <script src="/nw/scripts/knockout-2.1.0.debug.js"></script> 
    <script src="/nw/scripts/jquery.mobile-1.2.0.js"></script> 
    <link rel="stylesheet" href="/nw/scripts/jquery.mobile-1.2.0.css" /> 
     <title>title</title> 
</head> 
    <body> 
     <div> 
<script type="text/javascript"> 
    function AppViewModel() { 
     this.test = [{ "name": "noam", "age": "36" }, { "name": "yael", "age": "34"}]; 
    } 
    $(document).ready(function() { 
     ko.applyBindings(AppViewModel()); 
     }); 
</script> 
<ul data-bind="foreach: test" id="myList"> 
    <li>test <span data-bind="text: name"></span></li> 
</ul> 
     </div> 
    </body> 
</html> 

當我運行此我得到以下錯誤:未捕獲 錯誤:NOT_FOUND_ERR:DOM異常8

當我註釋掉jquerymobile腳本,它的工作原理。

任何幫助將appriciated

+0

必須嘗試更改腳本的順序。就像在knockout.js之前移動jquery移動設備一樣。 –

+0

是的,我原來在那裏。你可以試着將代碼複製出來,看看它是如何工作的? – Noam

+0

不確定這是否可能是原因,但嘗試使用$(document).bind('pageinit')而不是$(document).ready():http://jquerymobile.com/demos/1.2.0/docs /api/events.html – Alejo

回答

0

問題的直接原因是<script>塊,其中ko.applyBindings叫的位置。這個例子可以作爲-是,如果你移動<script>塊到<head>標籤,如下:(也注意使用pageinit事件和data-role="page"屬性)

<!DOCTYPE html>  
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
    <script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.1.0.debug.js"></script> 
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 
    <title>title</title> 
    <script type="text/javascript"> 
    function AppViewModel() { 
     this.test = [{ "name": "noam", "age": "36" }, { "name": "yael", "age": "34"}]; 
    } 
    $(document).bind('pageinit', function() { 
     ko.applyBindings(AppViewModel()); 
    }); 
    </script> 
</head> 
    <body> 
    <div data-role="page"> 
     <ul data-bind="foreach: test" id="myList"> 
     <li>test <span data-bind="text: name"></span></li> 
     </ul> 
    </div> 
    </body> 
</html> 

請記住,這兩個jQuery Mobile的和基因敲除改變DOM ,並且DOM錯誤是它們之間的衝突的徵兆,其中一個庫移動了另一個後來試圖解決的DOM元素。爲了讓JQM和淘汰賽一起工作(他們這樣做),您需要非常熟悉JQM何時/如何對DOM進行更改。 This page可能是一個很好的起點。

相關問題