簡體   English   中英

點擊外部頁面觸發事件

[英]Trigger event on click outside page

如果用戶單擊外部頁面,是否可以觸發事件? 更具體地說,在瀏覽器的標題欄還是標簽欄?

試試這個我的jsFiddle示例

的HTML

<div id="box">
    <div id="menu">Click here</div>
    <div id="show">Hello!</div>
</div>

JS

jQuery('div#menu').on('click', function(ev) {
    jQuery('div#show').addClass('visible').css({
        top: ev.clientY,
        left: ev.clientX
    });

    return false;
});

jQuery(document).click(function() {
    jQuery('div#show').removeClass('visible');
});

jQuery(window).blur(function() {
    jQuery(document).click();
});

測試

首先,您單擊“單擊此處”按鈕。 所以...

  1. 嘗試單擊某些文檔部分:確定
  2. 嘗試單擊某些頁面部分或使瀏覽器窗口失去焦點:確定
  3. 嘗試在瀏覽器中單擊其他打開的選項卡:確定
  4. 嘗試單擊瀏覽器標題欄或標簽標題:失敗

所以...

我有可能解決這個問題嗎?

檢測結果

  • Chrome :最后一次失敗;
  • Firefox :最后失敗;
  • IE10 :最后失敗;
  • Opera :最后失敗;

很抱歉告訴您,但這是不可能的。

原因? 好吧,基本上,單擊窗口的標題欄/選項卡實際上並不會使元素失去焦點。

在此嘗試以下示例:

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onblur

您會注意到,單擊標題欄/選項卡欄不會使文本框完全失去焦點,這是問題的根源。

我認為這對您的項目來說並不重要。 就用戶而言,它看起來會很好。

暫無
暫無

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

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