2011-03-22 80 views
0

我正在重新調整工具提示插件以使用live()函數。我的問題是,當我將title屬性設置爲''來禁用瀏覽器工具提示時,它重新啓動該函數,並且不允許我用存儲日期替換title屬性,因爲它會更新引用它的所有變量。我已經在下面發佈了我的最佳解決方案。任何幫助將非常感激。屬性更改時發生變化,使其停止!使用live()

$('#leadgen-cpm-cost-label').live('mouseover mouseout', function(e) { 
    if (e.type == 'mouseover') { 
    $(this).data(this, 'title', this.title); 
    this.t = $(this).data('title'); 
    alert(this.t); 
    this.title = ''; 
    this.top = (e.pageY + yOffset); this.left = (e.pageX + xOffset); 

    $('body').append('<p id="vtip"><img id="vtipArrow" />' + this.t + '</p>'); 

    $('p#vtip #vtipArrow').attr("src", 'common/vtip_arrow.png'); 
    $('p#vtip').css("top", this.top+"px").css("left", this.left+"px").fadeIn("slow"); 
} else { 
    this.title = this.t; 
    $("p#vtip").fadeOut("slow").remove(); 
}}); 

回答

0

您不會將原始標題(t)存儲在事件之間。我也不確定你要從中拉取標題元素,此事件定位的是什麼HTML元素?我對一個更可行的解決方案的猜測是類似於下面的內容,但我不得不承認,我猜測是基於缺乏信息。

$('#leadgen-cpm-cost-label').live('mouseover mouseout', function(e) { 
    if (e.type == 'mouseover') { 
     if ($(this).attr('active') == 'true') { return; } 
     var original_title = $(this).attr('title'); 
     $(this).data('original_title', original_title); 
     alert(original_title); 
     $(this).attr('title', ''); 
     this.top = (e.pageY + yOffset); this.left = (e.pageX + xOffset); 

     $('body').append('<p id="vtip"><img id="vtipArrow" />' + original_title + '</p>'); 

     $('p#vtip #vtipArrow').attr("src", 'common/vtip_arrow.png'); 
     $('p#vtip').css("top", this.top+"px").css("left", this.left+"px").fadeIn("slow"); 
     $(this).attr('active', 'true'); 
    } else { 
     if (($this).attr('active') != 'true') { return; } 
     $(this).attr('title', $(this).data('original_title'); 
     $("p#vtip").fadeOut("slow").remove(); 
     $(this).attr('active', 'false'); 
    } 
}); 

我繼續並增加了一個快速活動性檢驗,這可能會幫助你,這取決於呼叫的方式同時製作。

+0

好的,所以我很高興你和我一樣思考。元素應該是不相關的。這將是一個工具提示,因此元素可以是從跨度到標籤到img的任何內容。問題是live()函數被調用兩次。所以基本上我得到了兩個'鼠標懸停',然後是兩個'鼠標懸停'。第一個mouseover告訴我,我的標題是'Dummy Content',然後在它告訴我它是'',即使我將標題存儲爲變量,然後存儲在data()函數中。 - 我認爲標題的價值變化是導致它再次運行的原因。 – Andrew 2011-03-22 19:26:18

+0

有沒有機會看到這樣的例子? – whoughton 2011-03-22 19:28:40

+0

我詢問元素的原因更多的是要知道「title」屬性是否有效/預期。但只要你填充它,不管元素,我想它應該沒問題。 – whoughton 2011-03-22 19:34:44

相關問題