Javascript比较错误
我对jquery的javascript有一个奇怪的问题,错误在else if上。查看我给控制台的每一个决定日志,看看哪个条件运行。在第三种情况下,不运行Javascript比较错误,javascript,jquery,Javascript,Jquery,我对jquery的javascript有一个奇怪的问题,错误在else if上。查看我给控制台的每一个决定日志,看看哪个条件运行。在第三种情况下,不运行 var offset = $(el).offset(); var x = (e.pageX - offset.left); var y = (e.pageY - offset.top); var w = $(el).width(); var h = $(el).height(); var xoff = M
var offset = $(el).offset();
var x = (e.pageX - offset.left);
var y = (e.pageY - offset.top);
var w = $(el).width();
var h = $(el).height();
var xoff = Math.round((x / w * 100)).toFixed(2);
var yoff = Math.round((y / h * 100)).toFixed(2);
if(xoff > 50){
var x = w - (e.pageX - offset.left);
var html = '<tag style="top:'+y+'px;right:'+x+'px">Brand here</tag>';
console.log("1");
}
else if(yoff > 90 && xoff < 50){
var y = h - (e.pageY - offset.top);
var html = '<tag style="bottom:'+y+'px;left:'+x+'px">Brand here</tag>';
console.log(2);
}
else if(yoff > 90 && xoff > 50){
var y = h - (e.pageY - offset.top);
var x = w - (e.pageX - offset.left);
var html = '<tag style="bottom:'+y+'px;right:'+x+'px">Brand here</tag>';
console.log(3)
}
else{
var html = '<tag style="top:'+y+'px;left:'+x+'px">Brand here</tag>';
console.log(4);
}
console.log("xoff:"+xoff,"yoff:"+yoff);
您的第三个条件无效,因为第三个条件将始终为false
1条件:if(xoff>50)
3条件:else if(yoff>90&&xoff>50)
当xoff>50和yoff>90时,xoff>50将满足第一个条件。切勿检查其他状况
因此,您可以使用以下代码
if(xoff > 50 && yoff < 90){
var x = w - (e.pageX - offset.left);
var html = '<tag style="top:'+y+'px;right:'+x+'px">Brand here</tag>';
console.log("1");
}
else if(yoff > 90 && xoff < 50){
var y = h - (e.pageY - offset.top);
var html = '<tag style="bottom:'+y+'px;left:'+x+'px">Brand here</tag>';
console.log(2);
}
else if(yoff > 90 && xoff > 50){
var y = h - (e.pageY - offset.top);
var x = w - (e.pageX - offset.left);
var html = '<tag style="bottom:'+y+'px;right:'+x+'px">Brand here</tag>';
console.log(3)
}
else{
var html = '<tag style="top:'+y+'px;left:'+x+'px">Brand here</tag>';
console.log(4);
}
if(xoff>50&&yoff<90){
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(“1”);
}
否则,如果(yoff>90&&xoff<50){
变量y=h-(e.pageY-偏移量顶部);
var html='Brand here';
控制台日志(2);
}
否则,如果(yoff>90&&xoff>50){
变量y=h-(e.pageY-偏移量顶部);
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(3)
}
否则{
var html='Brand here';
控制台日志(4);
}
您的第三个条件无效,因为第三个条件将始终为false
1条件:if(xoff>50)
3条件:else if(yoff>90&&xoff>50)
当xoff>50和yoff>90时,xoff>50将满足第一个条件。切勿检查其他状况
因此,您可以使用以下代码
if(xoff > 50 && yoff < 90){
var x = w - (e.pageX - offset.left);
var html = '<tag style="top:'+y+'px;right:'+x+'px">Brand here</tag>';
console.log("1");
}
else if(yoff > 90 && xoff < 50){
var y = h - (e.pageY - offset.top);
var html = '<tag style="bottom:'+y+'px;left:'+x+'px">Brand here</tag>';
console.log(2);
}
else if(yoff > 90 && xoff > 50){
var y = h - (e.pageY - offset.top);
var x = w - (e.pageX - offset.left);
var html = '<tag style="bottom:'+y+'px;right:'+x+'px">Brand here</tag>';
console.log(3)
}
else{
var html = '<tag style="top:'+y+'px;left:'+x+'px">Brand here</tag>';
console.log(4);
}
if(xoff>50&&yoff<90){
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(“1”);
}
否则,如果(yoff>90&&xoff<50){
变量y=h-(e.pageY-偏移量顶部);
var html='Brand here';
控制台日志(2);
}
否则,如果(yoff>90&&xoff>50){
变量y=h-(e.pageY-偏移量顶部);
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(3)
}
否则{
var html='Brand here';
控制台日志(4);
}
尝试使用此选项
第一个条件if(xoff>50&&!(yoff>90&&xoff<50 | | yoff>90&&xoff>50))
$(文档).ready(函数(){
$(“img”)。在(“单击”)上,函数(e){
标记($(this),e,$(this.parent());
});
});
功能标签(el、e、父级){
var offset=$(el.offset();
var x=(e.pageX-offset.left);
变量y=(e.pageY-offset.top);
var w=$(el).width();
var h=$(el).height();
var xoff=数学四舍五入((x/w*100)).toFixed(2);
var yoff=数学四舍五入((y/h*100)).toFixed(2);
如果(xoff>50&&!(yoff>90&&xoff<50 | | yoff>90&&xoff>50)){
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(“1”);
}否则,如果(yoff>90&&xoff<50){
变量y=h-(e.pageY-偏移量顶部);
var html='Brand here';
控制台日志(2);
}否则,如果(yoff>90&&xoff>50){
变量y=h-(e.pageY-偏移量顶部);
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(3)
}否则{
var html='Brand here';
控制台日志(4);
}
log(“xoff:+xoff,”yoff:+yoff);
$(父).append(html);
}
正文{
位置:相对位置;
显示:块;
边际:0px;
文本对齐:居中;
背景:#333;
}
.img支架{
位置:相对位置;
显示:块;
背景:#344;
颜色:白色;
宽度:620px;
溢出:隐藏;
保证金:0px自动;
}
标签{
位置:绝对位置;
z指数:2;
背景:rgba(0,0,0,0.7);
填充物:5px;
}
尝试使用此
第一个条件if(xoff>50&&!(yoff>90&&xoff<50 | | yoff>90&&xoff>50))
$(文档).ready(函数(){
$(“img”)。在(“单击”)上,函数(e){
标记($(this),e,$(this.parent());
});
});
功能标签(el、e、父级){
var offset=$(el.offset();
var x=(e.pageX-offset.left);
变量y=(e.pageY-offset.top);
var w=$(el).width();
var h=$(el).height();
var xoff=数学四舍五入((x/w*100)).toFixed(2);
var yoff=数学四舍五入((y/h*100)).toFixed(2);
如果(xoff>50&&!(yoff>90&&xoff<50 | | yoff>90&&xoff>50)){
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(“1”);
}否则,如果(yoff>90&&xoff<50){
变量y=h-(e.pageY-偏移量顶部);
var html='Brand here';
控制台日志(2);
}否则,如果(yoff>90&&xoff>50){
变量y=h-(e.pageY-偏移量顶部);
var x=w-(e.pageX-偏移量。左侧);
var html='Brand here';
控制台日志(3)
}否则{
var html='Brand here';
控制台日志(4);
}
log(“xoff:+xoff,”yoff:+yoff);
$(父).append(html);
}
正文{
位置:相对位置;
显示:块;
边际:0px;
文本对齐:居中;
背景:#333;
}
.img支架{
位置:相对位置;
显示:块;
背景:#344;
颜色:白色;
宽度:620px;
溢出:隐藏;
保证金:0px自动;
}
标签{
位置:绝对位置;
z指数:2;
背景:rgba(0,0,0,0.7);
填充物:5px;
}
嘿,你可以用这个来解释吗?如果你想运行第三个else部分,如果你有一个类似else的条件,如果(yoff>90),你能描述预期的结果吗?如果(xoff>50&!(yoff>90&&xoff<50 | | yoff>90&&xoff>50)),那是因为它符合你的第一个条件,即if(xoff>50)
嘿,你可以用这个来解释吗?如果你想运行第三个else,如果你有像else一样的条件,如果(yoff>90),你能描述一下e吗