当我在元素上创建新属性时,它是动态生成的,它不会被保存:
$("#div-main").on("mouseover", ".generated", function(e)
{
console.log("hover");
console.log($(this).attr("title")) // always undefined
if (typeof $(this).attr("title") === typeof undefined)
{
$.get("<URL with PHP>", function(data)
{
if (data != "")
{
$(this).attr("title", data);
console.log($(this).attr("title")); // data shows
}
else
{
$(this).attr("title", "no data");
console.log($(this).attr("title")); // "no data" shows
}
});
}
else
{
console.log("'title' attribute already set");
}
});
未生成 #div-main
。具有类.generated
的元素是动态生成的<a>
元素。
答案 0 :(得分:2)
那是因为this
在AJAX回调中是不同的
$("#div-main").on("mouseover", ".generated", function(e)
{
console.log("hover");
console.log($(this).attr("title")) // always undefined
if (typeof $(this).attr("title") === typeof undefined)
{
var that = this; //CONTEXT
$.get("<URL with PHP>", function(data)
{
if (data != "")
{
$(that).attr("title", data);
console.log($(that).attr("title")); // data shows
}
else {
$(that).attr("title", "no data");
console.log($(that).attr("title")); // "no data" shows
}
});
} else {
console.log("'title' attribute already set");
}
});