我正在尝试制作类似于此处的标签系统,但如果在数据库中找不到标签,我希望能够允许用户提交它。
我正在使用select(here)和jquery。我选择了工作方式,但是我不能运行我的.click()事件。有什么想法吗?
由于
<form>
<select multiple="multiple" id="jqtags" style="width:400px;height:30px !important;">
<?php getTags(); ?>
</select>
<input type="submit" />
</form>
$(document).ready(function(){
c.init.page();
});
$('form').submit( function() {
var tags = $('#jqtags').val()
return false;
});
$("#jqtags").chosen();
$('.no-results').click(function() {
alert('123');
});
.no-results是由选择生成的,如果有任何帮助,那么页面加载就不存在
答案 0 :(得分:4)
.no-results由选择生成,不在页面加载
这就是问题所在。因为当您尝试绑定事件时该元素不在DOM中,所以它不会受到约束。您可以在DOM树的更高位置委托事件。 jQuery on
method允许您通过传入选择器来完成此操作。
如果.no-results
被添加为form
元素的后代,则可以执行以下操作:
$("form").on("click", ".no-results", function() {
alert('123');
});
这是有效的,因为DOM事件往往会从它们所源自的元素中冒泡树。如果在祖先元素上绑定事件处理程序,则在冒泡到达该元素时会捕获它。 on
方法检查原点是否与选择器匹配,如果是,则执行事件处理程序。