Jquery 向html中添加以前定义的函数将起作用
我有以下文件:Jquery 向html中添加以前定义的函数将起作用,jquery,Jquery,我有以下文件: <html> <body> <div id="preview"> <p>test</p> </div> </body> </html> 试验 我有以下代码: $("p").mouseover(function(){ $("p").css("background-color","yellow"); }); $("p").mouse
<html>
<body>
<div id="preview">
<p>test</p>
</div>
</body>
</html>
试验
我有以下代码:$("p").mouseover(function(){
$("p").css("background-color","yellow");
});
$("p").mouseout(function(){
$("p").css("background-color","lightgray");
});
function add(){
$("#preview").append("<p id="test">test2</p>");
}
$(“p”).mouseover(函数(){
css(“背景色”、“黄色”);
});
$(“p”).mouseout(函数(){
css(“背景色”、“浅灰色”);
});
函数add(){
$(“#预览”)。追加(test2
”;
}
问题是,
mouseover
和mouseout
函数只对我在html中添加的
起作用,而不是在我通过jquery附加的
上。我能做什么呢附加的jquery也能调用mouseover和mouseout?您应该使用.on()
来添加处理程序。像这样的事
$('body').on('mouseover', 'p', function() { ...
这将向主体添加一个事件处理程序,但在实际调用函数之前,将首先通过第二个参数进行过滤。这样,所有的
标记(当前和未来)都将使事件处理程序工作
对于完整文档,请阅读API文档:您应该使用.on()
添加处理程序。像这样的事
$('body').on('mouseover', 'p', function() { ...
这将向主体添加一个事件处理程序,但在实际调用函数之前,将首先通过第二个参数进行过滤。这样,所有的
标记(当前和未来)都将使事件处理程序工作
对于完整文档,请阅读API文档:您需要通过jQuery的.on()
函数使用事件委派,该函数将向选择器应用事件,即使存在动态内容,如下所示:
$('body').on('mouseover', 'p', function() {
});
注意:这指示jQuery在HTML的
(现在或将来)中查找任何
标记,当它们生成mouseover
事件时,就会执行函数()
回调中的内容。您需要通过jQuery的.on()
函数使用事件委派,即使存在动态内容,也会将事件应用于选择器,如下所示:
$('body').on('mouseover', 'p', function() {
});
注意:这指示jQuery在HTML的
(现在或将来)中查找任何
标记,当它们生成mouseover
事件时,将执行函数()
回调中的内容。改用jQuery的on()。以后请使用搜索函数。这个问题以前被问过很多次。请改用jQuery的on()。以后请使用搜索函数。这个问题以前被问过很多次。