Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在网页的每个部分上更改鼠标光标_Javascript_Jquery - Fatal编程技术网

Javascript 在网页的每个部分上更改鼠标光标

Javascript 在网页的每个部分上更改鼠标光标,javascript,jquery,Javascript,Jquery,上面是我用来更改鼠标光标的代码,当下拉值更改时,问题是,光标确实会在主体上变为等待状态,但当我将光标悬停在链接上时,它仍然会变回指针。我如何强制它在悬停链接等时保持显示等待状态。使用*选择页面上的所有元素: $("#sales-period").on("change", function () { $("body").css("cursor", "wait"); }); 为了获得更好的性能,您可以只针对具有不同光标的标记,例如链接或您自己更改光标的其他标记 要恢复到常规游标,请使用:

上面是我用来更改鼠标光标的代码,当下拉值更改时,问题是,光标确实会在主体上变为等待状态,但当我将光标悬停在链接上时,它仍然会变回指针。我如何强制它在悬停链接等时保持显示等待状态。

使用
*
选择页面上的所有元素:

$("#sales-period").on("change", function () {
    $("body").css("cursor", "wait");
});
为了获得更好的性能,您可以只针对具有不同光标的标记,例如链接或您自己更改光标的其他标记

要恢复到常规游标,请使用:

$("*").css("cursor", "wait");

您需要为所有
html
元素重置CSS。您已经为
body
元素设置了光标。但是
元素有默认的指针光标

试试这个
style.css
文件

$("*").css('cursor','auto');
显示/隐藏等待光标的Jquery代码:

body.wait,
body.wait * {
    cursor: wait;
}
试试这个

$("body").addClass("wait"); // to add wait cursor

$("body").removeClass("wait"); // to remove wait cursor
如前所述,您可以通过执行以下操作来覆盖每个元素的css
cursor
样式:

jQuery( "*" ).css("cursor", "wait");
但是,这是非常昂贵的,因为页面上的每个元素都必须更改DOM

另外,将所有游标返回到指定等待之前的状态将是一场噩梦。如果它们以前有内联样式,则这些样式将被覆盖,您将无法将它们返回到以前的状态


因此,我建议在
主体中添加一个类,然后在CSS中进行所有更改:

$("*").css("cursor", "wait");
然后,要删除等待状态,只需执行以下操作:

$("body").addClass("waiting");

body.waiting,
body.waiting a:hover,
body.waiting *
{
    cursor: wait !important;
}

这涉及到更少的DOM更改,并修复了锚定悬停状态游标的问题。

在代码运行之前,已经分配给DOM元素的任何游标会发生什么情况?i、 e.你会如何“记住”他们的状态并返回它?@Leetylor这就是为什么我在等待更好的答案。我想在这种情况下,使用@Curt Suggest这样的类将是最好的主意。@KamranAhmed-Curt的答案看起来是最好的one@LeeTaylor是的,我也这么想:)代码!重要提示
声明应在
光标后:wait
。干杯@Paul。更正。
$("body").removeClass("waiting");