jQuery Mobile无法在Android设备上动态更改图像。请帮忙。
其他信息:
我想做的是更改安全映像。它在我的计算机上本地运行,但是我可以使用网络ip地址访问代码和api,并且可以正常工作。当我尝试更改从url获得的图像时,它只更改了我在chrome,Firefox等系统中尝试过的Safari浏览器,但没有运气。
我尝试在其后设置date.getTime(),但这也不起作用。 我已经调试了代码,当我按下按钮时图像没有任何反应,输入字段变为null。
所以我的问题是每次单击按钮时都要更改图像。
$("#newSecurityCode").on("click",function () {
$("#securityCheckImg").attr("src", urlprefix() + "captcha");
$("#securityTextField").val("");
});
此代码可在Safari Mac和iPhone中使用,但不适用于chrome,Firefox .....
$("#newSecurityCode").click(function() {
$("#securityCheckImg").attr("src", url());
$("#securityTextField").val("");
});
<tr>
<td>
<img id="securityCheckImg">
</td>
</tr>
答案 0 :(得分:1)
几件事。
从不使用经典的jQuery click事件绑定。始终启用它,然后对文档对象执行此操作。 jQuery Mobile代码很慢,很有可能在内容加载到DOM之前执行JavaScript。如果您找到要记录的文档,则img是否属于DOM都无关紧要。一旦将img加载到DOM中,该事件就会传播到它。
所以像这样使用它:
$(document).on('click touchstart', '#newSecurityCode',function () {
$("#securityCheckImg").attr("src", url());
$("#securityTextField").val("");
});
另一件事,如果您在实际的Android手机上执行此代码,则无法执行localhost URL。仅当在计算机上执行时,Localhost才起作用。 将您的电话连接到WiFi,然后呼叫您的计算机IP地址而不是本地主机。 当然,只有在允许在计算机之外访问服务器的情况下,这才起作用。
答案 1 :(得分:0)
共享的信息很少,但是您可以尝试以下操作:
$("#newSecurityCode").on('click touchstart', function () {
$("#securityCheckImg").attr("src", url());
$("#securityTextField").val("");
});
<tr>
<td><img id="securityCheckImg"></td>
</tr>
或者,如果您仅定位移动设备,则可以使用普通JS和 ontouchstart 事件:
此处的示例:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_touchstart
答案 2 :(得分:0)
我认为这是缓存值的问题...(您应该在发布前阅读this;))
让我们尝试一下:
private Start()
{
StartCoroutine(getAuthToken(
(authToken) =>
{
CustomerGroups data = getCustGroups(authToken);
TextMesh curText = (TextMesh)gameObject.GetComponent(typeof(TextMesh));
curText.text = data.value[0].Field1+ "-" + data.value[0].Field2;
}
));
}
这次时间戳将迫使浏览器重新加载图像