使用jquery填充UL列表,但不调用单独的JavaScript函数
Using jquery to populate UL list but is not calling a seperate JavaScript function
总结:我制作了一张带有传单的地图。我有一辆带敞篷的ulli。一旦单击UL Li项,它将使用JavaScript函数缩放到该区域。通过硬编码的bayes填充UL,现在我已经改变为一个json文件的bayes被一个jquery函数调用,以填充ulli与bayes。
问题是,当ulli填充了bay后,它不再调用JavaScript函数,并且一旦单击了特定的bay,就不会缩放到特定的bay。
下面我解释了我的代码。我有一个标准的html无序列表,如下所示
<li id="Irish Continental Shelf"><a>Irish Continental Shelf</a></li>
当一个项目被选中时,调用以下JavaScript函数:
document.getElementById('Irish Continental Shelf').addEventListener('click', function () {
IrishContShelf();
var text = document.getElementById("mytext");
text.value = "Irish Continental Shelf";
});
此函数根据所选择的Id放大传单地图上的特定区域。
但是现在我想从json文件中添加一个更动态的列表,例如:
var data = {
"users": [
{ "Id": "Irish Continental Shelf" },
{ "Id": "Irish Exclusive Economic Zone" }]}
然后一个jquery函数填充无序列表,如下所示:
function list(){
$(data.users).each(function () {
// add in id of data variable
var output = "<li id= " + this.Id + "><a>" + this.Id + "</a></li>";
$('#placeholder').append(output);
});}
将被填充的ul:
<ul id="placeholder" style=" height:400px;
overflow:scroll;" class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" >
我不明白的是,即使当我创建li并为动态UL li赋予'id'属性与静态UL li相同的id时,它也不会调用JavaScript函数,并且缩放到特定区域。
你知道我哪里错了吗?
您没有提供足够的HTML来显示完整的示例,但是根据我的评论:
您需要在#placeholder
上使用委托事件处理程序。例如
$('#placeholder').on('click', 'li', function(){
var $li = $(this);
// DO STUFF HERE (Like extract data attributes from the LI to determine where to go next)
});
监听来自'UL'元素内部的id="placeholder"
元素冒气泡的点击事件,然后应用li
选择器,然后调用任何导致事件的匹配元素的函数。
这将与动态添加的内容一起工作,因为它侦听UL而不是每个LI。
相关文章:
- 如何放置单独的ajax调用,使页面的一部分完全响应,而另一部分仍在加载
- jQueryAjax调用在单独的.js文件中不起作用
- 使用AJAX在单独的文件中调用php函数
- 通过类选择器单独调用方法
- 如何在单独的文件中调用函数 js.
- 从单独的类调用活动函数
- 将javascript移动到单独的文件中,ajax调用会出现错误
- 复选框选中功能,用于单个页面中的两组复选框,不能单独调用功能
- 如何在jquery $.each(...)而不是内联中调用单独的javascript函数
- 从单独的 javascript 文件中调用 ASP.NET MVC 控制器操作
- 为什么我不能从单独的.js文件中调用任何函数
- 为什么当我在单独的函数中使用 $(this) 并在 .each() 中调用它时,它不起作用
- 如何在单独的文件中从另一个视图调用主干视图函数
- 从js调用php函数-两者都在单独的文件中
- 从REACT JS中单独的类调用函数
- ajax调用中返回的每个任务的单独复选框
- 使用jquery填充UL列表,但不调用单独的JavaScript函数
- 当两个单独的Ajax调用完成时,调用函数的好方法是什么?
- 动作应该有多个分派还是单独调用?react + Redux
- 在javascript或jquery中单独调用特定的函数