一千萬個為什麽

搜索

如何使用jQuery禁用瀏覽器中的工具提示?

是否有一種方法可以禁用瀏覽器工具提示,以便將鼠標懸停在具有“標題”屬性的元素上時進行顯示?請註意,我不想刪除標題內容。 這裏是要求的代碼:

  $(document).ready(function() {
     $('a.clickableSticky').cluetip({
         splitTitle: '|',
         showTitle: false,
         titleAttribute: 'description',
         activation: 'click',
         sticky: true,
         arrows: true,
         closePosition: 'title'
     });
 });

並在asp.net中

  
     
      

 

最佳答案

您可以在頁面加載時刪除 title 屬性。

$(document).ready(function() {
    $('[title]').removeAttr('title');
});

如果您稍後需要使用標題,則可以將其存儲在元素的jQuery data()中。

$(document).ready(function() {
    $('[title]').each(function() {
        $this = $(this);
        $.data(this, 'title', $this.attr('title'));
        $this.removeAttr('title');
    });
});

另一個選擇是將 title 屬性的名稱更改為 aTitle 或瀏覽器將忽略的其他內容,然後更新任何JavaScript以讀取新的屬性名稱,而不是<�代碼>標題</代碼>。

更新</強>

您可以使用的一個有趣想法是“懸停”地將鼠標懸停在元素上時刪除標題。當用戶懸停元素時,您可以將標題值放回。

這並不像應該那樣直截了當,因為如果將title屬性設置為 null 或刪除title屬性,則IE不會正確刪除懸停事件上的工具提示。但是,如果在懸停時將工具提示設置為空字符串(“”),則會從包括Internet Explorer在內的所有瀏覽器中刪除工具提示。

您可以使用上面提到的方法將title屬性存儲在jQuery的 data(...)方法中,然後將其放回到 mouseout 上。

$(document).ready(function() {
    $('[title]').mouseover(function() {
        $this = $(this);
        $this.data('title', $this.attr('title'));
       //Using null here wouldn't work in IE, but empty string will work just fine.
        $this.attr('title', '');
    }).mouseout(function() {
        $this = $(this);
        $this.attr('title', $this.data('title'));
    });
});

轉載註明原文: 如何使用jQuery禁用瀏覽器中的工具提示?