我正在使用非常标准的“单页”模型进行 JQueryMobile 开发,例如:
<div id="page1" data-role="page">Lorem Ipsum</div>
<div id="page2" data-role="page">
<div id="mycontent" data-role="content"></div>
</div>
当我单击链接以从 page1 导航到 page2 时,我将内容附加到 $("#mycontent") 包含并不总是具有指定宽度/高度的图像,然后我正在应用 iScroll-4 以便我可以滚动/缩放内容 - 在某些情况下,我需要在加载后立即缩放它,以便它很好地适合移动屏幕(通常为 600 像素宽开始)。问题是,一旦图像加载,格式就会崩溃,特别是因为我需要重新定位元素,因为 CSS 缩放喜欢将缩放的项目居中,而不是对齐到上/左角。
对于一个简单的问题,这可能是一个很长的解释(也许有更好的方法来解决上述问题?),但这是我真正的问题:我正在尝试为 div 上的加载事件添加一个事件侦听器,以便加载完所有图像后,我可以检查是否需要重新定位 div:
$("#mycontent").addEventListener('load', doSomething(), false);
function doSomething(){ alert("something"); }
疯狂的是,doSomething()确实被解雇了,但随后 Safari 抛出以下错误并使 JQuery 崩溃:
TypeError: 'undefined' 不是函数(评估 '$("#mycontent").addEventListener('load', doSomething(), false)')
该元素存在于 DOM 中,并且肯定是在添加事件侦听器时加载的 - 我想这可以通过它触发的事实来说明。JQM 在元素转换时将一些样式应用于元素,但我不知道这会如何影响它。
任何帮助将不胜感激,因为我已经为此苦苦挣扎了一段时间,并且即将编写一些非常丑陋的循环黑客来检查大小变化:/