Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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,我对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

我对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 = 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吗