2013-10-13 47 views
1

我最近想继续一个旧项目,但我的一个javascript函数停止工作:

jQuery(document).on('click', '#button .submitb', function(e){alert();}); 

jQuery IS包含在html文档中。但是,如果我点击

<div id="button" class="submitb">Go!</div> 

,没有任何反应。我甚至没有在Chrome控制台中发生错误。太,我敢肯定,它几个星期前... 任何人都有一个想法什么是错的,我怎么能解决这个问题?

回答

4

如果你要定位的相同元素,那么你就不能有选择之间的space,这将意味着.submitb后代的#button

而且由于元素具有ID你只是实际需要的ID选择:

jQuery(document).on('click', '#button', function(e){alert();}); 

编辑:

不能有多个按钮具有相同的ID!那么你应该只使用class。或给他们不同的ID结尾像_0,_1和目标与[id^=button]

+1

与'空间'是_descendant_,而不是_child_选择器。 –

+0

谢谢!问题是,我有多个#按钮,因为我将它用于CSS-Styling。但它的工作没有空间,谢谢:)! – Fly

+1

@ user2595546,检查我更新的答案。你不能有多个ID,它会给你带来问题 – Sergio

2

.submitb不是#button后代与jQuery的目标,它只是使用id`#键”

这样

jQuery(document).on('click', '#button', function(e){alert();});

如果你想针对与该类一个div ID你也可以只是移动空间。

这样

jQuery(document).on('click', '#button.submitb', function(e){alert();});

+0

谢谢,它的工作!但为什么?如果我想匹配元素ID和类,选择器应该如何显示? – Fly

+0

'#button .submitb'是'祖先后代','#button> .submitb'将会是'parent> child' –

+0

@ user2595546只需删除空格。 '#button.submitb'' – undefined

相关问题