[英]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.