首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone Safari Vs PC Safari

iPhone Safari Vs PC Safari
EN

Stack Overflow用户
提问于 2010-06-10 22:16:38
回答 1查看 937关注 0票数 1

这个js-code在我个人电脑上的safari上运行,但在ipod touch safari上不能运行(我也在iphone上测试过--仍然不能运行)。

代码语言:javascript
复制
$(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的函数调用一定不会因为某些未知的原因而发生(注意这个问题;o)。在手持设备上进行safari调试的可能性是什么?我正在寻找像firebug这样的东西--只为iphones而不是firefox。mobile safari中的调试控制台没有显示任何错误。如有任何建议或建议,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-10 22:23:15

由于我没有您的可扩展标示语言可供测试,因此我要冒险说问题出在您的HTML代码中包含额外的字符\')"

更改此行:

代码语言:javascript
复制
$('<li><a href="#lightssubmenu" onclick="lightdata()"   \')">'+lightname+'</a></li>').appendTo('#lightitems');

要这样做:

代码语言:javascript
复制
$('<li><a href="#lightssubmenu" onclick="lightdata()">'+lightname+'</a></li>').appendTo('#lightitems');

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

代码语言:javascript
复制
$(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+

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3015220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档