我一无所知。
在我的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 对象,则不应以美元符号开头。