-1

我对此主题进行了研究,但找不到我的问题的解决方案。DOM 是否需要刷新,或者这背后是否有任何其他逻辑。

我有一个锚标签,点击它会调用一些随机的 jquery 函数。如果我在加载页面时加载锚元素,则该函数执行得非常好,但是如果我使用另一个元素的某些事件加载该锚,导致它被另一个函数加载。然后单击该锚元素后,所需的 jquery 功能不会出现。解决方案请。

4

3 回答 3

2

页面加载时,您似乎已通过 javascript 将函数附加到锚元素,可能是这样:

$(#yourAnchorElement).click(yourFunction);

将事件附加到单个或多个 DOM 元素时,我们可以选择为当前元素当前和未来元素执行此操作。

您也应该使用这些方法来为未来的元素保留事件。

附加一个适用于动态加载元素的事件的好方法是(注意你的 jQuery 版本):

$( selector ).live( events, data, handler );                // jQuery 1.3+
$( document ).delegate( selector, events, data, handler );  // jQuery 1.4.3+
$( document ).on( events, selector, data, handler );        // jQuery 1.7+

请注意,从 jQuery 1.7 开始,像 .click() 这样的方法将始终适用于当前和未来的元素。

有关更多信息,请参阅http://api.jquery.com/live/

于 2013-09-25T10:36:48.137 回答
1

在较新的版本中不建议使用 jquery 实时事件处理程序...而是使用 jquery 委托。

参考http://api.jquery.com/delegate/

于 2013-09-25T10:19:04.483 回答
1

这将取决于您是否:

A - 将点击事件设置为 HTML 中的属性(这应该始终有效)

B - 用 JQuery 绑定事件(这只会绑定到已经渲染的元素,应该嵌套在 JQueries 页面准备函数中)

对于上述两种方法,最好的方法是使用 JQueries Delegate 方法,有关更多信息,请参阅http://api.jquery.com/delegate/

于 2013-09-25T10:20:41.203 回答