我是jQuery的新手,我無法弄清楚我的問題的解決方案。 我在我網站上的一些SVG對象上使用jQuery easytooltip。一切工作正常,但我需要改變運行時的工具提示的一些屬性。我的document.ready功能是這樣的:關於屬性操作的jquery問題
$(document).ready(function() {
$("polygon").easyTooltip({
tooltipId: "easyTooltip2",
content: 'hello'
});
});
我希望能夠,(鼠標懸停在我的多邊形)讀出從我的多邊形屬性,然後傳送到內容屬性,它表明,當工具提示正在顯示...如何訪問內容值以在運行時更改它?
我的插件代碼現在看起來是這樣的:
(function ($) {
$.fn.content = function (_content) {
$(this).easyToolTip({ content: _content })
};
$.fn.easyTooltip = function (options) {
// default configuration properties
var defaults = {
xOffset: 10,
yOffset: 25,
tooltipId: "easyTooltip",
clickRemove: false,
content: "",
useElement: ""
};
var options = $.extend(defaults, options);
var content;
this.each(function() {
var title = $(this).attr("title");
$(this).hover(function (e) {
content = (options.content != "") ? options.content : title;
content = (options.useElement != "") ? $("#" + options.useElement).html() : content;
$(this).attr("title", "");
if (content != "" && content != undefined) {
$("body").append("<div id='" + options.tooltipId + "'>" + content + "</div>");
$("#" + options.tooltipId)
.css("position", "absolute")
.css("top", (e.pageY - options.yOffset) + "px")
.css("left", (e.pageX + options.xOffset) + "px")
.css("display", "none")
.fadeIn("slow")
}
},
function() {
$("#" + options.tooltipId).remove();
$(this).attr("title", title);
});
$(this).mousemove(function (e) {
$("#" + options.tooltipId)
.css("top", (e.pageY - options.yOffset) + "px")
.css("left", (e.pageX + options.xOffset) + "px")
});
if (options.clickRemove) {
$(this).mousedown(function (e) {
$("#" + options.tooltipId).remove();
$(this).attr("title", title);
});
}
});
};
})(jQuery);
謝謝你的興趣。我已經在使用JavaScript編寫的onmousover函數了。在這個函數中,我想我必須添加如下內容:$(「easyTooltip2」)。content =「changedContent」;這是否有可能? – john
@Paperjam你應該使用鼠標懸停,而不是onmouseover –
@john這是可能的。你可以通過這樣做來創建你自己的jQuery插件(http://docs.jquery.com/Plugins/Authoring):'$ .fn.content = function(_content){$(this).easyToolTip({content: _content})}'。我沒有機會測試這個,但我認爲這可能會讓你朝正確的方向發展。 –