jQuery Mobile无法在Android设备上动态更改图片

时间:2019-02-20 08:22:19

标签: javascript android jquery jquery-mobile

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>

3 个答案:

答案 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;
        }
    ));
}

这次时间戳将迫使浏览器重新加载图像