假设我有一个存储HTML标记变量:如何使用jquery为html标记变量绑定事件?
var $content=$("<div id='test'></div>")
然后我想给它一个click事件,并将其追加到body元素
$content.click(function(){
console.log('click!');
});
$content.appendTo($('body'))
但它不工作,怎么能我可以做到吗?
假设我有一个存储HTML标记变量:如何使用jquery为html标记变量绑定事件?
var $content=$("<div id='test'></div>")
然后我想给它一个click事件,并将其追加到body元素
$content.click(function(){
console.log('click!');
});
$content.appendTo($('body'))
但它不工作,怎么能我可以做到吗?
click
处理程序设置得很好。问题是,使用完全空白的div,它的高度为0
(除非您在某处未显示样式),因此无法找到它以点击它。 Zero-height example | source。
解决的办法是把内容股利,或给它的造型给它高度:
var $content=$("<div id='test'>I'm the div!</div>");
$content.click(function(){
console.log('click!');
});
$content.appendTo($('body'));
的JavaScript:
var $content=$("<div id='test'></div>");
$content.click(function(){
console.log('click!');
});
$content.appendTo($('body'));
CSS:
#test {
height: 20px;
border: 1px solid black;
}
旁注:
假设我有一个存储HTML标记变量:
var $content=$("<div id='test'></div>");
请注意,你不保存HTML标记。通过用HTML标记调用jQuery,你告诉jQuery创建相关的DOM元素并将它们包装在一个jQuery实例中。
要存储标记在一个变量,你只是存储包含标记的字符串:
var content="<div id='test'></div>";
标记是文本;元素是对象。
更新:重新下方的评论:
我写的jQuery插件js文件的代码......它有一些事情?
重要的是,如果您的代码在有body
元素追加到之前正在运行;如果代码在加载时立即运行,并且从head
元素加载,则最后一行将失败,但不包含body
元素。如果在运行代码时存在body
元素,则应该没问题。
不,我想如果我给它设置一个高度,它也不起作用。在我的真实情况下,它是一个选项标签 – hh54188 2012-04-05 08:40:39
@ hh54188:如果设置了高度,它确实有效。看到我添加的例子。 – 2012-04-05 08:41:43
@T:好的......我在jquery插件js文件中写这段代码......它有一些问题吗? – hh54188 2012-04-05 08:43:45