我在两个不同的项目中遇到过这个问题,并最终意识到最近这个项目可能会有什么。在这两个中,我从SQL中提取了一些动态文本和一个动态值按钮(在一个项目中通过Python MVC,在另一个项目中通过PHP),我在按钮上有一个onclick函数,隐藏了一些文本
我第二次尝试它的问题,完全没问题。在第二个项目中,我最终在正确的位置发出了一些警报,并意识到在第一次单击时,可见性/显示CSS属性没有值(未定义,当我发出警报(object.style.display)时它只是空白) 。我认为this问题可能是我的答案,但是jQuery中的.live()折旧,我不确定如何处理.on() - 是我正在寻找加载的事件,或者还有什么我应该用的吗?
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
您需要使用委托:
$( document ).on( 'click', '[selector for dynamic elements]', function () {
// Do stuff here
} );
这样处理程序绑定到页面上始终存在的元素,selector
参数允许您指定要操作的动态元素。
<强>更新强>
鉴于以下评论中的代码示例,假设thing1
是静态的且thing2
是动态的,那么您会有类似这样的内容:
$( '#thing1' ).on( 'click', '#thing2', function () {
// Do stuff here (your foo() function code)
} );
或者你也可以引用一个命名函数:
$( '#thing1' ).on( 'click', '#thing2', foo /* name of function to assign to event */ );