iPhone Safari与PC Safari

时间:2010-06-10 14:16:38

标签: jquery iphone xml safari mobile-safari

这个js-code在我的电脑上使用safari,但不适用于ipod touch safari(也在iphone上测试过 - 仍然无法正常工作)。

$(document).ready(function(){

                $.ajax({
                type: "GET",
                url: "list.xml",
                dataType: "xml",
                cache: false,
                success: function(xml)
                 {              
                    $(xml).find('Lights>Light').each(function(){                        
                        var lightname = $(this).attr('Name');                       
                        $('<li><a href="#lightssubmenu" onclick="lightdata()" \')">'+lightname+'</a></li>').appendTo('#lightitems');
                    });
                }
            });

        });


        function lightdata()
        {
            alert("entered lightdata");             
        }

代码解析xml并动态创建html。 我的警报未显示在ipod touch上 - 其他测试警报显示正常。因此,当我在ipod touch上运行时,对lightdata的函数调用不得出于某种未知原因(hense this question; o))。 在手持设备上进行safari调试的可能性有哪些?我正在寻找类似firebug的东西 - 只是为了iphone safari而不是firefox。 移动safari中的调试控制台显示没有错误。 任何建议/提示将不胜感激。

1 个答案:

答案 0 :(得分:2)

由于我没有测试您的XML,因此我想说问题是HTML代码中的额外字符 \')"

更改此行:

$('<li><a href="#lightssubmenu" onclick="lightdata()"   \')">'+lightname+'</a></li>').appendTo('#lightitems');

对此:

$('<li><a href="#lightssubmenu" onclick="lightdata()">'+lightname+'</a></li>').appendTo('#lightitems');

此外,您应该更改处理事件的方式,并将它们附加到内联onclick处理程序之外。这是你的代码,转移了一下:

$(document).ready(function(){
    var lightItems = $('#lightitems');

    lightItems.delegate('a','click', function(e){
      e.preventDefault();
      lightdata();
    })

    $.ajax({
        type: "GET",
        url: "list.xml",
        dataType: "xml",
        cache: false,
        success: function(xml) {              
            $(xml).find('Lights>Light').each(function(){                        
                var lightname = $(this).attr('Name');                       
                lightItems.append('<li><a href="#lightssubmenu">'+lightname+'</a></li>');
            });
        }
    });
});


function lightdata()
{
    alert("entered lightdata");             
}

注意:这需要jQuery 1.4.2 +