簡體   English   中英

允許對目標事件執行默認操作,並針對父級阻止默認操作

[英]Allow default action for target event and prevent default action for parent

我們有這種標記:

<a href="#">
   <input type="file" />
</a>

默認情況下,當您單擊輸入時,將顯示 “選擇文件”窗口,並且位置更改為“#”。 如何防止瀏覽器更改位置?

我嘗試過的

//location still changes
$('input').bind('click', function (e) {
  e.stopPropagation();
});

//prevents "Select file" window
$('input').bind('click', function (e) {
  e.preventDefault();
});

//prevents "Select file" window 
$('a').bind('click', function (e) {
  e.preventDefault();
});

嘗試將$(e)更改$(e) e.

e.preventDefault();

在執行$(e).preventDefault()導致錯誤

Uncaught TypeError: Object [object Object] has no method 'preventDefault' 

您需要檢查用戶是否單擊了a元素而不是輸入文件。 這應該工作。

$('a').click(function(e) {
    if ($(e.target).is('a')) {
        e.preventDefault();
    }
});

DEMO

暫無
暫無

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

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