天天看点

knockout.js(js)代码在IE中出现“意外地调用了方法或属性”的错误

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

<code>var</code>

<code>cartlistviewmodel =</code><code>function</code>

<code>() {</code>

<code>    </code><code>var</code>

<code>self =</code><code>this</code><code>;</code>

<code>    </code><code>self.payment = [</code>

<code>                </code><code>{ name:</code><code>""</code><code>, value: 1 },</code>

<code>                </code><code>{ name:</code><code>""</code><code>, value: 2 },</code>

<code>            </code><code>];</code>

<code>    </code><code>self.items = ko.observablearray([]);   </code><code>// {‘id‘:1,‘data‘:[‘aa‘,‘bb‘]}</code>

<code>    </code><code>self.load =</code><code>function</code>

<code>      </code> 

<code>         </code><code>var</code>

<code>data = &lt;%=cartlistmap %&gt;;</code>

<code>        </code> 

<code>        </code><code>var</code>

<code>items =</code><code>new</code>

<code>array();</code>

<code>        </code><code>for</code>

<code>(</code><code>var</code>

<code>i</code><code>in</code>

<code>data) {</code>

<code>            </code><code>var</code>

<code>dataitem = data[i];</code>

<code>cartitem =</code><code>new</code>

<code>cartitemviewmodel()</code>

<code>            </code><code>。。。</code>

<code>            </code><code>items.push(cartitem);</code>

<code>        </code><code>}</code>

<code>        </code><code>self.items(items);</code>

<code>    </code><code>};</code>

<code>    </code><code>self.totalsum =</code><code>function</code><code>(){</code>

<code>totalsum = 0;</code>

<code>ilength =</code><code>this</code><code>.items().length;</code>

<code>        </code><code>for</code><code>(</code><code>var</code>

<code>idx = 0; idx &lt; ilength; idx++)</code>

<code>        </code><code>{</code>

<code>iitem =</code><code>this</code><code>.items()[idx];</code>

<code>            </code><code>if</code>

<code>(iitem.selected())</code>

<code>            </code><code>{</code>

<code>                </code><code>totalsum = totalsum + iitem.goodsprice();</code>

<code>            </code><code>}</code>

<code>        </code><code>}   </code>

<code>        </code><code>return</code>

<code>totalsum.tofixed(2);           </code>

<code>    </code><code>}</code>

<code>}</code>

 上面部分knockout.js代码,其中,totalsum函数中,return

totalsum;(原来的代码)在ff中正常运行,但在ie总出现“意外地调用了方法或属性”的错误。后来在代码后加了tofixed(2)后正常。