javascript - 变量在 iPad 上未定义与在浏览器中定义的原因是什么?

标签 javascript jquery variables web-applications undefined

我一无所知。

在我的 Jquery Mobile 插件中我声明:

var $currentEntry = $.mobile.urlHistory.stack[$.mobile.urlHistory.activeIndex].url;
    $activePage = $('div:jqmData(url="'+ $currentEntry +'")');

因此,我获取事件页面的 url 并使用它来构造 $activePage 对象。

这在桌面上工作正常,但在我的 iPad (iOS3.3) 上,$currentEntry 定义正确,但 $activePage 未定义.

问题:
造成这种情况的原因是什么?

您可以排除竞争条件,因为将其包装在 10 秒超时中仍然会产生相同的结果。另外,如果我直接控制台相应页面并查询它的 data-url,它会显示正确的值。那么为什么上面的内容在 iOS 上仍然给我未定义

 undefined

在其他地方都能正常工作吗?

感谢您的任何提示!

编辑:
该元素将是动态的,但我可以直接在我的设置中对页面进行控制台,如下所示:

console.log( $('div:jqmData(wrapper="true").ui-page-active').attr('id') );
console.log( $('div:jqmData(wrapper="true").ui-page-active').attr('data-url') );

两者都返回正确的iddata-url,因此元素必须存在。

编辑2:
我可以查询属性data-url,它给了我正确的值。但是,我无法像这样选择使用此属性:

$('div[data-url="'+$currentEntry+'"]').length

这给了我0

最佳答案

我承认我是盲目猜测,但你应该尝试:

$activePage = $('div').filter(function(){return $(this).jqmData('url') === $currentEntry})

顺便说一句,就语义而言,我认为“$currentEntry”如果不是 jQuery 对象,就不应该以美元符号开头。

关于javascript - 变量在 iPad 上未定义与在浏览器中定义的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10777507/

相关文章:

javascript - 在 javascript 中访问 JSON 数据未定义错误

javascript - 我怎样才能提前载入传单 map ?

c# - ASP.NET jQuery Ajax 调用代码隐藏方法

javascript - 为 JSON 对象创建 CRUD?

php - 如何列出文件中的所有 PHP 变量?

mysql (5.1) > 用变量名创建表

jquery增量值

javascript - 带有后备 url 的历史记录 back()

javascript - JW播放器如何添加自定义提示点

javascript - jquery 从 data-href 获取数据