Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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 chrome中返回错误值的弹出函数_Javascript_Google Chrome - Fatal编程技术网

Javascript chrome中返回错误值的弹出函数

Javascript chrome中返回错误值的弹出函数,javascript,google-chrome,Javascript,Google Chrome,这段代码适用于firefox,控制台日志在firefox和chrome上都为我提供了正确的“位置”值。但是说到x.style.left,它给了我一个不同的值?例如,我的b.layerX-50是249,但当弹出窗口出现时,其左值是-37? Jsfiddle:您能否提供一个Jsfiddle或为您的问题添加更多的代码,以便我们可以在上下文中看到它?尝试更改x.setAttribute('style','display:block')到x.style.display='block'并尝试确保位置为绝对:

这段代码适用于firefox,控制台日志在firefox和chrome上都为我提供了正确的“位置”值。但是说到x.style.left,它给了我一个不同的值?例如,我的b.layerX-50是249,但当弹出窗口出现时,其左值是-37?
Jsfiddle:

您能否提供一个Jsfiddle或为您的问题添加更多的代码,以便我们可以在上下文中看到它?尝试更改
x.setAttribute('style','display:block')
x.style.display='block'
并尝试确保位置为绝对:
x.style.position='absolute'
。另外,我可以看到您已经在使用jQuery来调用“兄弟姐妹”,为什么不使用jQuery来完成所有工作呢?您的小提琴对我来说根本不起作用,即使在Firefox中也是如此。“a”参数是一个DIV的id,我看不到它里面的任何东西。@Buzinas我更新了链接,它现在应该可以工作了:)如果你在x.style.left中将b.layerX-50更改为“position”,它在chrome中可以正常工作。我不知道是什么原因导致了这个问题请尝试使用clientX而不是offsetX!
function popup(a, b) {
    x = document.getElementById(a);
    y = document.getElementById('ze-editor').offsetWidth;
    if (x.style.display == 'none') {
        position = (b.offsetX === undefined) ? b.layerX - 50 : b.offsetX - 50;
        position = Number(position);
        console.log(b.layerX - 50);
        x.setAttribute('style', 'display: block');
        if (position + x.offsetWidth + 20 > y) {
            position = position - 40;
        }
        x.style.left = position + 'px';
    } else {
        x.style.display = 'none';
    }
    $('#' + a).siblings().hide();
};