这是我的javascript方法
function showToolTip(message, controlId) {
var webControl = controlId;
var position = webControl.position();
$("#ShowInfo").show();
$("#ShowInfo").html(message);
$("#ShowInfo").css({ top: position.top, left: position.left });
}
这是我的asp.net文本框
<asp:TextBox ID="txtLoadCode" runat="server"onMouseOver="showToolTip('This indicates the load code',this)"></asp:TextBox>
但这给了我一个不支持对象的错误。
有人可以帮忙吗?
答案 0 :(得分:1)
当你传递this
时,它不是一个jQuery对象,它是本机DOM节点。
您必须首先将其包装以使其与jQuery方法一起使用
function showToolTip(message, controlId) {
var webControl = $(controlId); // wrapped
var position = webControl.position();
$("#ShowInfo").show();
$("#ShowInfo").html(message);
$("#ShowInfo").css({ top: position.top, left: position.left });
}
答案 1 :(得分:0)
我可以看到的一个问题是属性没有用空格分隔
runat="server"onMouseOver="showToolTip('This indicates the load code',this)"
应该是这样的
runat="server" onMouseOver="showToolTip('This indicates the load code',this)"
答案 2 :(得分:0)
这是因为你将函数中的this
对象命名为controlID
只是因为它实际上并不是id。它仍然是this object
。所以你需要提取这个对象并使用它。
所以,这里是:
JS:
function showToolTip(message, controlObject) {
var webControl = $(controlObject);
var position = webControl.position();
console.log("position::"+position.top)
$("#ShowInfo").show();
$("#ShowInfo").html(message);
$("#ShowInfo").css({ top: position.top, left: position.left });
}
工作小提琴: http://jsfiddle.net/Tf9gm/