账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js onclick方法在火狐中不起作用
    • 2018-07-04 00:00
    • 10
    71
    0

    定义了一个 onclick,在 Edge 和 chrome 中都起作用,但是火狐就 gg 了,刚自学网页前端,还望各位指教一下,多谢!

    <div class="sidebar-btn">
        <button>
            <span class="sidebar-btn-icon" onclick="sidebarOpen();">
                <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
                    <path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"></path>
                    <path d="M0 0h24v24H0z" fill="none"></path>
                </svg>
            </span>
        </button>
    </div>
    function sidebarOpen() {
        if (main.hasClass('sidebar-open')) {
            main.removeClass('sidebar-open');
        } else {
            main.addClass('sidebar-open');
        }
    }
    // main 是我定义的变量名,具体在下面的截图里面,我尝试过不用变量了

    让我纳闷的是另外一个函数在火狐里就起作用,就上面这个不行,下面是起作用的那个:

    <div class="header-search-btn">
        <i class="fas fa-search search-open" onclick="searchToggle();"></i>
        <i class="fas fa-times search-close" onclick="searchToggle();"></i>
    </div>
    function searchToggle() {
        if(main.hasClass('search-open')) {
            main.removeClass('search-open');
            $(".search-input").val("");
            $("#local-search-result").empty();
        } else {
            main.addClass('search-open');
            $(".search-input").val("");
            $("#local-search-result").empty();
            scrollTo(0,0);
        }
    }

    原来方法名字为 sidebarToggle(),我还以为是方法名原因,然后改过来了,我也试过直接把 js 放到元素后面,还是不起作用,因为自己都是独自琢磨过来的,所以写的不是那么的规范。希望各位前辈能指点我一下。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 在Firefox中,当你使用JavaScript的onclick事件时,它会在HTML元素的点击事件触发时运行。然而,如果HTML元素在Firefox浏览器中无法正确渲染或处理JavaScript代码,那么这个事件可能不会触发。

      以下是一些可能导致onclick事件在Firefox浏览器中不起作用的原因和解决方案:

      1. 缺乏HTML元素渲染:如果你的JavaScript代码没有正确地将JavaScript代码插入到HTML元素中,那么这个元素可能无法正确渲染,导致JavaScript代码无法被浏览器执行。确保你的JavaScript代码在HTML元素中正确地放置,包括在<div><span><a>等元素的正确位置。

      2. 缺少CSS样式:如果你的JavaScript代码没有正确地添加CSS样式到HTML元素,那么这个元素可能无法正确地添加CSS样式,从而导致JavaScript代码无法被浏览器正确地渲染。在HTML元素的CSS样式中添加display: inline-block;display: inline-block; text-align: center;属性可以使JavaScript代码可以正确地在元素中嵌套并调整其位置。

      3. 问题在JavaScript代码中:如果你的JavaScript代码中的语法错误、循环或条件语句没有正确地执行,那么JavaScript代码可能无法被浏览器正确地执行,从而导致onclick事件在Firefox浏览器中不起作用。确保你的JavaScript代码按照正确的语法结构和逻辑进行编写,包括使用正确的变量名、变量类型、条件语句和循环结构。

      4. 兼容性问题:某些浏览器(如IE8及更早版本)可能不支持某些JavaScript函数或语法,例如onclick。如果你的JavaScript代码中使用了这些不支持的函数或语法,那么在Firefox浏览器中可能会遇到问题。

      5. 元素的属性值设置不当:如果HTML元素的onclick属性的值设置不正确,例如设置了onclick="someFunction()",那么这个属性值将无法触发onclick事件。确保你的HTML元素的onclick属性的值设置正确,例如onclick="myFunction()"

      6. 错误的JavaScript事件处理程序:如果你的JavaScript事件处理程序没有正确地处理JavaScript代码的执行结果,那么这个事件可能不会在Firefox浏览器中触发。确保你的JavaScript事件处理程序处理正确了JavaScript代码的执行结果,例如使用alert()confirm()prompt()函数显示消息或确认消息。

      7. 处理button元素:在Firefox浏览器中,button元素通常是用于触发JavaScript代码的,而不是直接作为点击事件的触发元素。如果你试图在button元素上设置onclick事件,可能会遇到button元素不支持onclick事件的问题。

      解决这些问题后,你可能会发现onclick事件在Firefox浏览器中能够正常工作了。如果问题仍然存在,可能需要进一步检查你的JavaScript代码、HTML元素的CSS样式、兼容性问题、属性值设置、JavaScript事件处理程序和button元素,以及具体的浏览器版本和设置。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部