变量在 iPad 上可以未定义与在我的浏览器中定义的原因
Reasons a variable can be undefined on iPad vs. being defined in my Browser?
我一无所知。
在我的Jquery移动插件中,我声明:
var $currentEntry = $.mobile.urlHistory.stack[$.mobile.urlHistory.activeIndex].url;
$activePage = $('div:jqmData(url="'+ $currentEntry +'")');
所以我正在获取活动页面的 url 并使用它来构造一个$activePage对象。
这在桌面上工作正常,但在我的 iPad (iOS3.3) 上,$currentEntry定义正确,但$activePage未定义。
问题:
这是什么原因呢?
您可以排除争用条件,因为将其包装在 10 秒超时中仍会产生相同的结果。此外,如果我直接控制台相应的页面并查询它的数据 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') );
两者都返回正确的 id 和数据 url,因此元素必须存在。
编辑2:
我可以查询属性数据网址,它给了我正确的值。但是,我不能像这样使用此属性进行选择:
$('div[data-url="'+$currentEntry+'"]').length
这给了我 0
我承认我是盲猜,但你应该尝试:
$activePage = $('div').filter(function(){return $(this).jqmData('url') === $currentEntry})
顺便说一句,仅就语义而言,我认为如果"$currentEntry"不是 jQuery 对象,则不应以美元符号开头。
相关文章:
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 如何在用户按下F5键或单击浏览器时显示自定义的fancybox's后退/关闭按钮
- 使用浏览器在页面(客户端)上运行自定义JavaScript来模拟点击?怎么做
- 谷歌地图API v3自定义光标在谷歌浏览器中的热点
- 用我自己的自定义快捷方式覆盖浏览器快捷方式
- 从用户脚本空间重新定义Firefox中的原生浏览器功能
- 自定义右键单击UI上下文菜单(复制、粘贴、剪切)用于整个应用程序(所有网页)跨所有浏览器而非单个网页
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 粘性导航-JS Waypoints在浏览器调整大小时出现自定义粘性导航问题
- 某些浏览器中cookie的未定义索引
- 使用CKEditor自定义文件浏览器,并使用ASP.Net MVC进行上传
- 自定义Div滑块运行过快,但仅当从另一个浏览器选项卡返回时
- 通过javascript访问浏览器历史记录,以实现自定义的后退和前进按钮
- 选择浏览器自动完成(而非自定义自动完成)后提交表单
- ActiveXObject 不是为除 IE 之外的所有浏览器定义的
- 在 popState 定义的上下文中,浏览器活动历史记录的含义是什么?
- 如何检测浏览器定义的日期格式
- 浏览器定义和用户定义的css属性
- 我如何在 asp.net 中为不同的浏览器定义不同的 css 文件
- 从文件输入中获取浏览器定义的文本(例如“选择文件”)