JQuery 无法在移动设备上打开 Bootstrap 模式(iPhone)

JQuery does not open Bootstrap modal on mobile(iPhone)

提问人:Falcon 提问时间:1/3/2019 最后编辑:ankitkanojiaFalcon 更新时间:8/4/2023 访问量:1341

问:

我有一个 Javascript/JQuery 函数,它应该在 AJAX 请求后打开引导模式。

这适用于使用 Chrome 的 PC,但不幸的是它不适用于 iPhone(Chrome/Safari)

按钮:

<button type="button" id="GetEmployees" class="btn btn-primary" onclick="GetEmployees()">
    <span class="glyphicon glyphicon-user">&nbsp;</span>Toevoegen
</button>

功能:

function GetEmployees() {
    $.ajax({
        type: 'post',
        url: appPath + '/TimeRegistration/GetEmployees',
        data: {  },
        success: function (response) {
            if (response != null) {
                alert("Load");
                $("#dialog-project .modal-body").html(response);
                $("#dialog-project").modal("show");
                alert("open");
            }
        },
        error: function (response) {
            alert("Onbekende fout opgetreden")
        }
    });
}

这是对话框本身:

<div id="dialog-project" class="modal fade" tabindex="-1" role="dialog" style="color: #333333;">
    <div class="modal-dialog modal-sm">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 id="dialog-title" class="modal-title">Aanmaken nieuwe tijdregel</h4>
            </div>
            <div class="modal-body">
            </div>
        </div>
    </div>
</div>

由于某种原因,在iPhone上,我收到警报“加载”,但模式没有显示,最后一个警报也没有显示。

edit2:为了让按钮首先执行JS,我必须添加:

$(document).ready(function () {
    var touchEvent = 'onclick' in window ? 'click' : 'touchstart';
    $('#GetEmployees').on('click touchstart', function () {
        GetEmployees();
    })
})
JavaScript jquery ios

评论

0赞 Sylvain Attoumani 1/3/2019
它适用于 Firefox 或 PC 上的 edge 吗?
0赞 Falcon 1/3/2019
@SylvainAttoumani 是的,它适用于 Firefox 以及 PC ;)
0赞 john Smith 1/3/2019
带有 cursor:pointer 的东西;似乎集成不正确,bootstrap 应该将 cursor:pointer 添加到按钮,不是吗?
0赞 Narendra Jadhav 1/3/2019
您使用的是哪个版本的 Bootstrap?
0赞 Falcon 1/3/2019
@NarendraJadhav Bootstrap v3,我认为不是 johnSmith。我无法想象这是问题所在,因为 JS 函数被正确执行,直到我们调用模态。

答:

0赞 bimal sharma 3/13/2019 #1

我也面临同样的问题。我通过以下代码修复了。

$( "#code" ).on('shown', function(){
    $('body').css('position','fixed');
});

在IOS浏览器中,位置有问题,它采取固定位置。

0赞 Amit kumar 8/11/2020 #2

这是由于 ios dervices 上的 css 问题。

只需使用光标:指针;在 CSS 中。您可以在其中添加类。 就像:-

.iosmodal{
    cursor: pointer;
}
0赞 Deepak Jadon 8/4/2023 #3
function GetEmployees() {
$.ajax({
    type: 'post',
    url: appPath + '/TimeRegistration/GetEmployees',
    data: {},
    success: function (response) {
        if (response != null) {
            console.log("Load");
            $("#dialog-project .modal-body").html(response);
            $("#dialog-project").modal("show");
            console.log("open");
        }
    },
    error: function (xhr, status, error) {
        console.log("Error status: " + status);
        console.log("Error message: " + error);
        alert("An unknown error occurred. Please try again.");
    }
});

}

下面是该函数的更新版本,其中包含一些使用 console.log 进行的其他错误处理:

通过使用 console.log 语句,您可以检查浏览器的控制台以查看任何错误消息或日志。这可以提供有关iPhone设备上可能出现的问题的更具体信息。

请记住在多个设备和浏览器上测试您的应用程序,以确保跨平台兼容性。如果遇到特定的错误消息或行为,可以提供更多详细信息以获得进一步的帮助。