簡體   English   中英

如何添加e.preventDefault()

[英]How to add e.preventDefault()

我希望在執行Play函數時停止頁面跳轉到#soundEvent所在頁面的頂部。 根據這個答案, https://stackoverflow.com/a/1998717/511438 ,它是由.html().append() 使用e.preventDefault()可以防止頁面“跳轉”或返回false(false不起作用)。 如何使用preventDefault?

我的文檔中有以下內容。

$("[data-play-sound]").each(
    function ()
    {
        var soundFile = $(this).attr('data-play-sound');
        if (soundFile != "") Play(soundFile);
        $(this).removeAttr('data-play-sound');
    }
);

function Play(mp3Path)
{
    $("#sound_").remove();
    console.groupCollapsed(' ');
    $('#soundEvent').append('<embed id="sound_" autostart="true" hidden="true" src="' + mp3Path + '" type="audio/mpeg" />');
    console.groupEnd();
}

我已經嘗試過但是導致錯誤:對象“ 0”沒有方法preventDefault

   $("[data-play-sound]").each(
        function (e)
        {
            ...
            if (soundFile != "") Play(e, soundFile);
            ...
        }
    );

function Play(e, mp3Path)
{
    e.preventDefault();
    ...
}

jQuery .each()接受參數索引和值,而不是事件,因此0表示索引

e.preventDefault僅適用於事件處理程序( return false是取消事件的另一種方法),例如$('#myLink').click(function(e) { e.preventDefault(); });

您實際上並沒有在此處設置任何事件處理程序...如果您可以通過類選擇鏈接,則可以執行以下操作:

$('.someClass').click(function(e) { e.preventDefault(); });

或者,您可以只添加onclick="return false;" (即不執行任何操作)鏈接標簽。 查看HTML以確定您是否真的需要首先放入href="#soundEvent"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM