内容页一个function方法中有拼接input的,母版页有相关的onclick事件,内容页触发这个function方法后,会在内容页拼接显示一个input,但点击并没有效果,母版页有该input的onclick事件。如果将该onclick事件写到内容页的那个function方法里,就可以有效果。猜测是因为作用域不同的原因?闭包的缘故?但不知道如何高效的解决,目前的本方法就是再在function中写一遍onclick事件
function a() {
m+=‘<div><input class="form-d" id=“xx”/>拼接的。。。。。</div>’
$("#list")append($(m));
}
母版页是根据class写的一个onclick
$('.form-d').on("click",function()
{
...
});
不知道为什么?
$('body').on("click",".form-d",function()
{
...
});
这样子试试
这样是可以的,为啥啊?
是因为扩大了作用域吗?
@但乱红尘: 你拼接上去的input,相当于是个未来元素;要给未来元素添加事件,
需要使用事件委托。也就是将点击事件绑定到任意父元素上,指定子元素。
你可以百度一下事件委托或事件代理
@心悠魂然: 🆗,十分感谢
事件也放在拼接的字符串里就行了
是在拼接字符串里拼接onclick()吗,我试了是不行的