Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 添加数值的JQuery_Javascript_Jquery_Css_Numbers - Fatal编程技术网

Javascript 添加数值的JQuery

Javascript 添加数值的JQuery,javascript,jquery,css,numbers,Javascript,Jquery,Css,Numbers,有人能帮我调试一下吗??? 我真的不知道我的代码有什么问题 我正在尝试将数值添加到另一个数值。。。。但它并没有像我预期的那样工作……相反,它只是将数字作为字符串添加 这是我的演示: (已解决) 下面是js代码: $(document).ready(function(){ $("#map").click(function(e){ var x = parseInt((e.pageX - this.offsetLeft)) - parseInt("140"); var y = pars

有人能帮我调试一下吗??? 我真的不知道我的代码有什么问题

我正在尝试将数值添加到另一个数值。。。。但它并没有像我预期的那样工作……相反,它只是将数字作为字符串添加

这是我的演示: (已解决)

下面是js代码:

$(document).ready(function(){
$("#map").click(function(e){
    var x = parseInt((e.pageX - this.offsetLeft)) - parseInt("140");
    var y = parseInt((e.pageY - this.offsetTop)) - parseInt("140");


  var coor = $("#map").css("background-position").split(" ");
  var cx = parseInt(coor[0].replace("px",""));
  var cy = parseInt(coor[1].replace("px",""));


    $("#map").stop().animate({"backgroundPosition": x+cx+" "+y+cy},"slow");
     alert("X:"+x+", CX: "+cx+"\n Y:"+y+", CY:"+cy+"\n Background-pos:"+$("#map").css("background-position"));

});
});
请告诉我有什么问题…

不是吗

var x = parseInt((e.pageX - $(this).offset().left)) - parseInt("140");
var y = parseInt((e.pageY - $(this).offset().top)) - parseInt("140");
不是吗

var x = parseInt((e.pageX - $(this).offset().left)) - parseInt("140");
var y = parseInt((e.pageY - $(this).offset().top)) - parseInt("140");
在算术运算前后加括号
()

$("#map").stop().animate({"backgroundPosition": (x+cx)+" "+(y+cy)},"slow");
否则,添加空格
字符串将强制JS将您的数字连接为字符串

在算术运算周围加上括号
()

$("#map").stop().animate({"backgroundPosition": (x+cx)+" "+(y+cy)},"slow");
否则,添加空格
字符串将强制JS将您的数字连接为字符串


在您的
动画
-语句的末尾,您将背景位置设置为:

x+cx+" "+y+cy
这被解释为一个字符串,因为四个
+
-操作被同等地解释。实际上,您需要包含一个字符串(
“”
)。因此,这个表达式的整个结果变成一个字符串,加法不再是加法,而是concat

但是,如果您将数学封装到括号中,那么您应该很好。最后一行是:

$("#map").stop().animate({"backgroundPosition": (x+cx)+" "+(y+cy)},"slow");

(注意
x+cx
周围的额外括号)

animate
-语句的末尾,将背景位置设置为:

x+cx+" "+y+cy
这被解释为一个字符串,因为四个
+
-操作被同等地解释。实际上,您需要包含一个字符串(
“”
)。因此,这个表达式的整个结果变成一个字符串,加法不再是加法,而是concat

但是,如果您将数学封装到括号中,那么您应该很好。最后一行是:

$("#map").stop().animate({"backgroundPosition": (x+cx)+" "+(y+cy)},"slow");

(注意
x+cx
周围的额外括号)

以下内容适合我:

$("#map").click(function(e){
        alert(e.pageX);
        alert(this.offsetLeft);
        alert(parseInt(e.pageX)-parseInt(this.offsetLeft));

以下是我的作品:

$("#map").click(function(e){
        alert(e.pageX);
        alert(this.offsetLeft);
        alert(parseInt(e.pageX)-parseInt(this.offsetLeft));

你跟在我后面回答了一会儿,但那是因为你的回答过于解释。嗯,我希望有人能更深入地解释一下,我喜欢,+1=]哈哈,谢谢;-)当我还在打字的时候,我看到你的回复突然出现,我很高兴我们的两个答案都有各自的帮助!你跟在我后面回答了一会儿,但那是因为你的回答过于解释。嗯,我希望有人能更深入地解释一下,我喜欢,+1=]哈哈,谢谢;-)当我还在打字的时候,我看到你的回复突然出现,我很高兴我们的两个答案都有各自的帮助!