【发布时间】:2014-11-11 20:44:54
【问题描述】:
我正在开发一个网络应用程序。您可以找到网站here。
如果单击“道路”图标,并且在菜单打开加号(“+”)后,将出现一个带有标签的文本输入。这个<ul> 使用jQueryUI Sortable 插件,当然可以在输入后对地址进行排序。
我想在这些地址字段的标签上添加一个点击事件,这样当用户点击号码时,会出现一个对话框,他/她可以手动编辑号码(它可以得到一点反击——如果有数百个地址,则很有效率)。
由于稍后创建标签和输入的<li> 元素,我尝试委托点击事件,如下所示:
$(document.body).on('click', '.control-label', function () {
console.log($(this));
});
但是该事件永远不会触发。我开始认为,也许可排序插件禁用了我的事件到该标签?
这是地址字段的HTML代码(标签+输入+删除按钮)
<li>
<div class="form-group">
<label class="col-md-1 control-label">1.</label>
<div class="col-md-11 input-group">
<input type="text" name="waypoints[]" class="form-control form-control-square waypoint animated fadeInRight" placeholder="Megálló" autocomplete="off" required=""><span class="input-group-btn animated fadeInRight"><button type="button" class="btn btn-square btn-danger btn-removewaypoint animated fadeInRight">×</button></span>
<div class="search-suggestions">
<ul></ul>
</div>
</div>
</div>
</li>
Here 是添加新行的 addWaypoint() 函数。每次用户单击 + 按钮时都会调用它。
编辑:显然它不是可排序的插件,而是阻止点击事件的其他东西。有人有什么想法吗?
【问题讨论】:
-
我刚刚在 jsfiddle 中测试了它,它可以工作。必须是其他禁用点击事件的东西
-
@RiceJunkie 我知道 Chrome 的开发者控制台中有一种方法可以查看元素附加了哪些事件,但我不知道如何检查。你有什么想法吗?
-
您可以在开发人员工具中选择您的元素,在右侧列出您的 css 样式的地方有一个事件监听器选项卡
-
@TrisztánThar 我已经检查过了——你可以看到 jQuery 在各个点都附加了自己。这是有道理的——你没有将你的代码直接附加到
click,只是让jQuery在事件发生时调用你的函数。我目前正在尝试重现 jsfiddle 上的实际问题...
标签: javascript jquery html jquery-ui events