我在移动 Cordova 上遇到问题,它有一个非常简单的功能,首先为元素设置宽度/高度,然后它在元素内的跨度上工作(大文本插件 - 尽管与此插件无关)
<script type="text/javascript">
$(".blockstart").each(function () {
$(this).css({
"width": blockwidth,
"height": blockwidth
});
alert("css change");
});
$(".blockstart").find("span").bigText();
</script>
发生了什么:
每个 blockstart 元素的 Css 警报(尽管页面上没有可见的变化)。
工作已在 span 元素上完成但不正确,因为父元素没有设置 with/height。
只有现在父级 (blockstart) 的宽度/高度发生变化。
这只发生在移动设备上。这让我发疯,有什么建议吗?
我什至尝试过以下功能,但不是一直有效(在移动设备上)。
function runbigtext(div) {
var initbigtext = setInterval(function() {
if ($("" + div + "[style*='height']").length == $(div).length) {
clearInterval(initbigtext);
$(div).find("span").bigText();
}
}, 50);
}
runbigtext(".blockstart");
这有时有效,有时无效(要正常工作,div.blockstart 应该设置宽度和高度,并在具有这些尺寸的页面中可见。bigtext 函数通过使内部的 span 文本元素适合父分区的大小)。这只发生在移动设备上。
我无法解释发生了什么。
最佳答案
删除警报,您可以改用控制台, 并在每个循环中调用函数传递 $this 作为参数,因此如果由于渲染缓慢,异步过程不会与 this 重叠
只需在每个循环中调用函数并更改那里的 css,
关于javascript - jQuery CSS 无法在移动设备上正确触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27286812/