我在JavaScript中遇到了一个问题,我试图寻找一个解决方案,但我想我只是不知道我正在寻找什么 - 因为我无法找到问题的答案我和#39; m在这里寻求帮助:
我有两个JavaScript函数,它们应该通过添加一个overlay div并将光标的css状态更改为加载,然后恢复正常来模拟ajax调用上的加载页面:
function LoadMouse(ths){
if($("#overlay").length==0){
$("body").css({"cursor":"wait"});
$(ths).css({"cursor":"wait"});
$("body").append(\'<div id="overlay"></div>\');
}
else{
return false;
}
}
function AutoMouse(ths,Cursor){
if (typeof Cursor === "undefined"){ Cursor = "auto"; }
$("body").css({"cursor":Cursor});
$(ths).css({"cursor":Cursor});
$("#overlay").remove();
}
在我的代码中,我在各个地方从jQuery调用此函数,例如:
function doFirstThing(){
$(document).on("click",".element1",function(){
var This = $(this);
LoadMouse(This);
//do stuff
AutoMouse(This);
});
}
function doSecondThing(){
$(document).on("click",".element2",function(){
var This = $(this);
LoadMouse(This);
//do stuff
AutoMouse(This,"pointer");
});
}
想法是如果element2首先在css中有一个指针光标 - 我希望它再次成为一个指针。
现在说我在element2上调用该函数 - 它工作并且光标变为指针但是当我单击element1时,光标对于element1和元素2都变为auto,如果我单击元素3它将更改为元素1 ,2和3等。我该如何解决这个问题?
(顺便说一句,我改变了身体和元素上的css,因为当我只为身体尝试它时,它不会在元素本身上改变)。
编辑:
回应关于html的评论:它只是一个简单的标签:
<a href="javascript:void" class="elemen1">click here</a>
<a href="javascript:void" class="elemen2" style="cursor:pointer;">click here 2</a>
当我单击元素2并运行我的LoadMouse按钮将2参数传入其中时,在检查chrome中的元素时会发生以下情况:
步骤1 :(当LoadMouse()运行时):
<a href="javascript:void" class="elemen2" style="cursor:wait;">click here 2</a>
第2步:(当AutoMouse()运行时):
<a href="javascript:void" class="elemen2" style="cursor:pointer;">click here 2</a>
但是当我点击元素1后,第二个元素内联css也受到了影响:
步骤1 :(当LoadMouse()运行时):
<a href="javascript:void" class="elemen1" style="cursor:wait;">click here</a>
<a href="javascript:void" class="elemen2" style="cursor:wait;">click here 2</a>
第2步:(当AutoMouse()运行时):
<a href="javascript:void" class="elemen1" style="cursor:auto;">click here</a>
<a href="javascript:void" class="elemen2" style="cursor:auto;">click here 2</a>