Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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 getElementById在mobilephone上不工作_Javascript_Html_Mobile_Getelementbyid - Fatal编程技术网

JavaScript getElementById在mobilephone上不工作

JavaScript getElementById在mobilephone上不工作,javascript,html,mobile,getelementbyid,Javascript,Html,Mobile,Getelementbyid,我正在创建一个包含一些JavaScript代码的网站。JavaScript在计算机上运行良好。但是在我的iPhone7上,getElementById函数不起作用。我试图设置一个img标签的来源,但什么也没发生 JavaScript: var header_bar = $('.js-header-bar, .js-header-bar-mobile'); var header_bar_mobile = $('.js-header-bar-mobile'); var header_bar_navb

我正在创建一个包含一些JavaScript代码的网站。JavaScript在计算机上运行良好。但是在我的iPhone7上,getElementById函数不起作用。我试图设置一个img标签的来源,但什么也没发生

JavaScript:

var header_bar = $('.js-header-bar, .js-header-bar-mobile');
var header_bar_mobile = $('.js-header-bar-mobile');
var header_bar_navbar = header_bar_mobile.find('.navbar-primary');
var header_bar_toggler = header_bar_mobile.find('.navbar-toggler');
var header_bar_offsetTop =  header_bar.offset().top;

$(window).on('scroll', onScroll); 
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        document.getElementById("headerLogo").src = "images/logo-black.png";


    } else {
        header_bar.removeClass("sticky");
        document.getElementById('headerLogo').src = "images/logo-white.png";
    }
}
<header class="header header-mobile js-header-bar-mobile d-md-none">
    <div class="header-bar">
        <div class="header-bar-logo">
            <a href="index.html">
                <img class="originalTest" alt='Auto mit Schriftzug: "Autohandel-ZAR"' id="headerLogo" src="images/logo-white.png"/>
            </a>
        </div>
        <div class="header-bar-menu">
            <button class="navbar-toggler hamburger" type="button" id="js-header-toggle">
                <span class="hamburger-box">
                    <span class="hamburger-inner"></span>
                </span>
            </button>
        </div>
    </div>
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        $(".logoHeader").attr("src", "images/logo-black.png");


    } else {
        header_bar.removeClass("sticky");
        $(".logoHeader").attr("src", "images/logo-white.png");
    }
}
该功能应该在网站顶部添加一个黑色徽标,如果我滚动一个白色徽标。 在电脑上可以,但在我的智能手机上不行

HTML:

var header_bar = $('.js-header-bar, .js-header-bar-mobile');
var header_bar_mobile = $('.js-header-bar-mobile');
var header_bar_navbar = header_bar_mobile.find('.navbar-primary');
var header_bar_toggler = header_bar_mobile.find('.navbar-toggler');
var header_bar_offsetTop =  header_bar.offset().top;

$(window).on('scroll', onScroll); 
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        document.getElementById("headerLogo").src = "images/logo-black.png";


    } else {
        header_bar.removeClass("sticky");
        document.getElementById('headerLogo').src = "images/logo-white.png";
    }
}
<header class="header header-mobile js-header-bar-mobile d-md-none">
    <div class="header-bar">
        <div class="header-bar-logo">
            <a href="index.html">
                <img class="originalTest" alt='Auto mit Schriftzug: "Autohandel-ZAR"' id="headerLogo" src="images/logo-white.png"/>
            </a>
        </div>
        <div class="header-bar-menu">
            <button class="navbar-toggler hamburger" type="button" id="js-header-toggle">
                <span class="hamburger-box">
                    <span class="hamburger-inner"></span>
                </span>
            </button>
        </div>
    </div>
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        $(".logoHeader").attr("src", "images/logo-black.png");


    } else {
        header_bar.removeClass("sticky");
        $(".logoHeader").attr("src", "images/logo-white.png");
    }
}


提前感谢。

为移动设备添加额外的事件侦听器:

$(document.body).on('touchmove', onScroll);
因此,完整的代码应该如下所示:

var header_bar = $('.js-header-bar, .js-header-bar-mobile');
var header_bar_mobile = $('.js-header-bar-mobile');
var header_bar_navbar = header_bar_mobile.find('.navbar-primary');
var header_bar_toggler = header_bar_mobile.find('.navbar-toggler');
var header_bar_offsetTop =  header_bar.offset().top;

$(document.body).on('touchmove', onScroll);
$(window).on('scroll', onScroll); 
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        document.getElementById("headerLogo").src = "images/logo-black.png";


    } else {
        header_bar.removeClass("sticky");
        document.getElementById('headerLogo').src = "images/logo-white.png";
    }
}

为移动设备添加其他事件侦听器:

$(document.body).on('touchmove', onScroll);
因此,完整的代码应该如下所示:

var header_bar = $('.js-header-bar, .js-header-bar-mobile');
var header_bar_mobile = $('.js-header-bar-mobile');
var header_bar_navbar = header_bar_mobile.find('.navbar-primary');
var header_bar_toggler = header_bar_mobile.find('.navbar-toggler');
var header_bar_offsetTop =  header_bar.offset().top;

$(document.body).on('touchmove', onScroll);
$(window).on('scroll', onScroll); 
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        document.getElementById("headerLogo").src = "images/logo-black.png";


    } else {
        header_bar.removeClass("sticky");
        document.getElementById('headerLogo').src = "images/logo-white.png";
    }
}

I通过使用jQuery按类而不是按Id获取元素,解决了这个问题 所以问题是身份部分

工作代码:

var header_bar = $('.js-header-bar, .js-header-bar-mobile');
var header_bar_mobile = $('.js-header-bar-mobile');
var header_bar_navbar = header_bar_mobile.find('.navbar-primary');
var header_bar_toggler = header_bar_mobile.find('.navbar-toggler');
var header_bar_offsetTop =  header_bar.offset().top;

$(window).on('scroll', onScroll); 
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        document.getElementById("headerLogo").src = "images/logo-black.png";


    } else {
        header_bar.removeClass("sticky");
        document.getElementById('headerLogo').src = "images/logo-white.png";
    }
}
<header class="header header-mobile js-header-bar-mobile d-md-none">
    <div class="header-bar">
        <div class="header-bar-logo">
            <a href="index.html">
                <img class="originalTest" alt='Auto mit Schriftzug: "Autohandel-ZAR"' id="headerLogo" src="images/logo-white.png"/>
            </a>
        </div>
        <div class="header-bar-menu">
            <button class="navbar-toggler hamburger" type="button" id="js-header-toggle">
                <span class="hamburger-box">
                    <span class="hamburger-inner"></span>
                </span>
            </button>
        </div>
    </div>
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        $(".logoHeader").attr("src", "images/logo-black.png");


    } else {
        header_bar.removeClass("sticky");
        $(".logoHeader").attr("src", "images/logo-white.png");
    }
}

I通过使用jQuery按类而不是按Id获取元素,解决了这个问题 所以问题是身份部分

工作代码:

var header_bar = $('.js-header-bar, .js-header-bar-mobile');
var header_bar_mobile = $('.js-header-bar-mobile');
var header_bar_navbar = header_bar_mobile.find('.navbar-primary');
var header_bar_toggler = header_bar_mobile.find('.navbar-toggler');
var header_bar_offsetTop =  header_bar.offset().top;

$(window).on('scroll', onScroll); 
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        document.getElementById("headerLogo").src = "images/logo-black.png";


    } else {
        header_bar.removeClass("sticky");
        document.getElementById('headerLogo').src = "images/logo-white.png";
    }
}
<header class="header header-mobile js-header-bar-mobile d-md-none">
    <div class="header-bar">
        <div class="header-bar-logo">
            <a href="index.html">
                <img class="originalTest" alt='Auto mit Schriftzug: "Autohandel-ZAR"' id="headerLogo" src="images/logo-white.png"/>
            </a>
        </div>
        <div class="header-bar-menu">
            <button class="navbar-toggler hamburger" type="button" id="js-header-toggle">
                <span class="hamburger-box">
                    <span class="hamburger-inner"></span>
                </span>
            </button>
        </div>
    </div>
function onScroll(){
    if ($(this).scrollTop() > header_bar_offsetTop){
        header_bar.addClass("sticky");
        $(".logoHeader").attr("src", "images/logo-black.png");


    } else {
        header_bar.removeClass("sticky");
        $(".logoHeader").attr("src", "images/logo-white.png");
    }
}

可能尝试使用jQuery$(“#headerLogo”).attr(“src”,“your/path”)@StanFortońskiDeveloper谢谢你。但它仍然不起作用…我认为你的网站被缓存了,或者你的JavaScript文件被保存在缓存中。尝试从手机的web浏览器中删除缓存。@StanFortońskiDeveloper不起作用。我认为问题在于获取不带ID的元素,在那里设置图像源。因为我可以添加新类,但ID的东西不能work@StanFortońskiDeveloper它现在可以工作了。我刚刚尝试用jQuery按类获取元素,现在工作正常。所以问题出在ID部分,可以尝试使用jQuery$(“#headerLogo”).attr(“src”,“your/path”)@StanFortońskiDeveloper谢谢你。但它仍然不起作用…我认为你的网站被缓存了,或者你的JavaScript文件被保存在缓存中。尝试从手机的web浏览器中删除缓存。@StanFortońskiDeveloper不起作用。我认为问题在于获取不带ID的元素,在那里设置图像源。因为我可以添加新类,但ID的东西不能work@StanFortońskiDeveloper它现在可以工作了。我刚刚尝试用jQuery按类获取元素,现在工作正常。所以问题出在ID部分。谢谢,但它仍然不起作用。addClass部分在没有附加事件侦听器的情况下也可以工作。谢谢,但它仍然不能工作。addClass部分在没有附加事件侦听器的情况下也能正常工作。