委托事件选择器作为第n个元素不起作用

时间:2016-01-19 22:53:04

标签: javascript jquery

我想为动态加载Div标签的按钮附加click事件。我正在尝试使用父Dev标签上的委托事件。单击时应附加到第n个(比方说6)子div标签。

$(".navigation-bar").delegate('.navigation-bar > :nth-child(6)',"click",function() {
..
})

上面的代码没有将事件附加到子div。但是当我在整个页面加载后从控制台运行此代码时,它会起作用。

1 个答案:

答案 0 :(得分:0)

如果您的代码在加载后在控制台中运行,那么在DOM加载完成之前您的脚本可能正在运行。首先通过记录运行代码的位置上方的元素来测试是否属于这种情况:

console.log( $(".navigation-bar")[0] ); //this could likely be undefined
console.log( $('.navigation-bar > :nth-child(6)')[0] ); //and this is likely undefined

如果它们未定义,请确保您的脚本在body元素的末尾运行,或者甚至更好,在jquery的ready函数中运行所有代码:MSDN documentation