0

我在两个不同的项目中遇到过这个问题,最后意识到最近的一个项目可能会出现什么问题。在这两者中,我都从 SQL 中提取了一些动态文本和一个动态值按钮(在一个项目中通过 Python MVC,在另一个项目中通过 PHP),并且我在按钮上有一个 onclick 函数来隐藏一些文本.

我第二次尝试它的问题,非常好。在第二个项目中,我终于在正确的位置放置了一些警报,并意识到在第一次单击时,可见性/显示 CSS 属性没有值(不是未定义,当我警报(object.style.display)时它只是空白) . 我认为这个问题可能是我的答案,但是 .live() 在 jQuery 中贬值了,我不确定如何处理 .on() - 是我正在寻找负载的事件,还是还有其他事情我应该用吗?

任何帮助是极大的赞赏。谢谢!

4

1 回答 1

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 */ );
于 2013-01-08T18:52:27.623 回答