在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js onclick方法在火狐中不起作用

js onclick方法在火狐中不起作用

定義了一個 onclick,在 Edge 和 chrome 中都起作用,但是火狐就 gg 了,剛自學網(wǎng)頁前端,還望各位指教一下,多謝!

<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 是我定義的變量名,具體在下面的截圖里面,我嘗試過不用變量了

讓我納悶的是另外一個函數(shù)在火狐里就起作用,就上面這個不行,下面是起作用的那個:

<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 放到元素后面,還是不起作用,因為自己都是獨自琢磨過來的,所以寫的不是那么的規(guī)范。希望各位前輩能指點我一下。

回答
編輯回答
糖豆豆

火狐下, button 內的子元素的 click 事件會被攔截掉,
所以你 button 里的 span 點擊無效,但 div 里的 i 點擊有效。
如果你需要 span 擁有點擊效果,則把 button 改為 div 即可,可以將 button 樣式加在 div 上。

2017年11月22日 03:54