2014-09-23 127 views
0

即时通讯设法动态地生成一个元素并使用下面的代码将元素绑定到一个单击事件......一切正常,但点击数据源时不会触发点击事件。Jquery点击功能不被识别

function create_datasource_facet(facetcount){ 
     console.log(JSON.stringify(facetcount)) 
     $('#filters').append('<div id="datafacet"></div>') 
     $.each(facetcount,function(index,value){ 
       console.log(value); 
       console.log(index); 
       $('#datafacet').append('<br>') 
       $('#datafacet').append('<div id="datasource">' + index + '[' + value + '] </div>') 
       //$('#datafacet').append('<br>') 

     }) 

$(document).on('click','#datssource',function(){ alert('datasource clicked')}) 

} 
+0

拼写错误( '点击', '#datssource',函数()' – AmanVirdi 2014-09-23 15:09:50

+0

也注意到,尽管JavaScript有ASI,严格的浏览器可以使所以用分号更好地关闭所有的东西只是为了保证安全。 – Banana 2014-09-23 15:11:17

回答

1

您在这里的ID值一个错字:

$(document).on('click','#datssource',function(){ alert('datasource clicked')}) 
----------------------------^ 
1

你在点击事件处理程序拼错#datasource


有一点需要注意的是,你可能试图追加多个元素的ID'#datasource'。 ID应该是唯一的,所以你最好把它变成.datasource。在#datasource

+0

@isherwood这是真的。删除了它,并在关于重复ID的说明中添加了他可能遇到的 – Joe 2014-09-23 15:15:14

+0

我没有看到重复的ID,看起来很棒,OP也可以递增ID – isherwood 2014-09-23 15:23:46

0

click事件不#datssource

function create_datasource_facet(facetcount){ 
     console.log(JSON.stringify(facetcount)) 
     $('#filters').append('<div id="datafacet"></div>') 
     $.each(facetcount,function(index,value){ 
       console.log(value); 
       console.log(index); 
       $('#datafacet').append('<br>') 
       $('#datafacet').append('<div id="datasource">' + index + '[' + value + '] </div>') 
       //$('#datafacet').append('<br>') 

     }) 

$(document).on('click','#datasource',function(){ alert('datasource clicked')}) 

} 
+0

你也拼错了ID值:-) – isherwood 2014-09-23 15:12:48

+0

Uuppsss !!!对不起这是我的错。 – 2014-09-23 15:14:07

0

你以为你的代码是负荷加载文档之前。

尝试在`$(文件)。在

$('#datssource').on('click',function(){ alert('datasource clicked')}) 

}