.click 事件在 Safari 中不起作用

Posted

技术标签:

【中文标题】.click 事件在 Safari 中不起作用【英文标题】:.click event is not working in safari 【发布时间】:2018-12-05 15:36:21 【问题描述】:

我在 javascript 中有一个 .click 事件,它似乎在除 safari 之外的所有主要浏览器中都能正常工作。代码正在创建一个对话框,在单击提交按钮时显示图像。

$(document).ready(new function () 
var SpinnerImage = ('<div id="dialog-message"><img src="loading.gif" /></div > ');
$("#ctl00_mainContent_AppPaymentControl1_applicationPaymentControl_payNow").click(function () 
    //show loading gif
    $('body').append(SpinnerImage);
    $("#dialog-message").dialog(
        
            title: 'Loading... Please Wait'
        );
    );
);

任何帮助将不胜感激。

【问题讨论】:

不确定它是否会有所不同,但请在第一行从您的函数中删除new。没必要 new function () 这可能有助于***.com/questions/23497825/… @epascarello 这不是时间问题,因为它适用于所有其他浏览器。 @SyedVasty 为什么要在页面加载时触发按钮点击? 【参考方案1】:

看看这是否有效?

1  $(document).ready(function () 
2     var SpinnerImage = $("<div id='dialog-message'><img src='loading.gif' /></div>");
3     $("#ctl00_mainContent_AppPaymentControl1_applicationPaymentControl_payNow").click(function () 
4        //show loading gif
5        $('body').append(SpinnerImage);
6        $("#dialog-message").dialog(
7           
8              title: 'Loading... Please Wait'
9           
10       );
11    );
12 );

更正:

删除第一行的new 在第2行添加$ 修复第 2 行错误的单引号和双引号

您在评论中提到#ctl00_mainContent_AppPaymentControl1_applicationPaymentControl_payNow 是一个&lt;input&gt; 元素。尝试使用$(element).focus(callback); 方法而不是$(element).click(callback);

【讨论】:

没有。它不起作用。我在某处读到 Safari 不支持 .click?有人知道这是不是真的吗? @SyedVasty 桌面版还是移动版 Safari?什么版本? @SyedVasty #ctl00_mainContent_AppPaymentControl1_applicationPaymentControl_payNow的元素标签是什么? @SyedVasty 不,这就是属性。我要元素。你知道吗,比如divspaninput 等等? @SyedVasty 而不是.click(,试试.focus(

以上是关于.click 事件在 Safari 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 视频加载数据事件在 IOS Safari 中不起作用

click事件在innerhtml字符串angular 6中不起作用

回发在 Windows 7 的 Safari 中不起作用

Angular `ng-click` 在 DataTables 表行中不起作用

在文档就绪事件发生时,window.open 在 iphone 中不起作用

Flexbox 中心在 Safari 中不起作用