无法选择/ jquery来运行事件

时间:2012-05-30 10:17:16

标签: jquery jquery-chosen

我正在尝试制作类似于此处的标签系统,但如果在数据库中找不到标签,我希望能够允许用户提交它。

我正在使用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是由选择生成的,如果有任何帮助,那么页面加载就不存在

1 个答案:

答案 0 :(得分:4)

  

.no-results由选择生成,不在页面加载

这就是问题所在。因为当您尝试绑定事件时该元素不在DOM中,所以它不会受到约束。您可以在DOM树的更高位置委托事件。 jQuery on method允许您通过传入选择器来完成此操作。

如果.no-results被添加为form元素的后代,则可以执行以下操作:

$("form").on("click", ".no-results", function() {
    alert('123');
});

这是有效的,因为DOM事件往往会从它们所源自的元素中冒泡树。如果在祖先元素上绑定事件处理程序,则在冒泡到达该元素时会捕获它。 on方法检查原点是否与选择器匹配,如果是,则执行事件处理程序。

相关问题