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();
}});
好的,所以我很高興你和我一樣思考。元素應該是不相關的。這將是一個工具提示,因此元素可以是從跨度到標籤到img的任何內容。問題是live()函數被調用兩次。所以基本上我得到了兩個'鼠標懸停',然後是兩個'鼠標懸停'。第一個mouseover告訴我,我的標題是'Dummy Content',然後在它告訴我它是'',即使我將標題存儲爲變量,然後存儲在data()函數中。 - 我認爲標題的價值變化是導致它再次運行的原因。 – Andrew 2011-03-22 19:26:18
有沒有機會看到這樣的例子? – whoughton 2011-03-22 19:28:40
我詢問元素的原因更多的是要知道「title」屬性是否有效/預期。但只要你填充它,不管元素,我想它應該沒問題。 – whoughton 2011-03-22 19:34:44