1

我正在尝试制作一个像这里一样的标签系统,但如果在数据库中找不到标签,我希望能够允许用户提交它。

我正在使用选择(此处)和 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 是由 selected 生成的,如果有帮助,页面加载时不存在

4

1 回答 1

4

.no-results 是由 selected 生成的,并且在页面加载时不存在

那就是问题所在。因为当您尝试绑定事件时元素不在 DOM 中,所以它不会被绑定。您可以将事件委托给 DOM 树的上层。jQueryon方法允许您通过传入选择器来执行此操作。

如果.no-results被添加为form元素的后代,你可以这样做:

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

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

于 2012-05-30T10:20:28.050 回答