我正在动态创建女巫的输入,我需要附上一个推特类型。
由于html是动态生成的服务器端,输入标签只能从它的类中选择,我发现附加它的唯一方法是使用delegate()
Jquery函数。
为了在每个输入上只附加一次预先输入,我在undelegate()
之后立即使用delegate()
功能。
$(document).delegate(".receivers-input", "click", function () {
console.log($(this)); // input.receivers-input.col-md-4.col-sm-4.col-xs-4
$(this).undelegate($(this));
$(this).typeahead({
minLength: 0,
}, {
source: function (query, cb) {
var Request = $.ajax({
...
这很有效,但是当我点击附加的预先输入时,我收到此错误消息:
未捕获的TypeError:无法读取属性' origType'未定义的
这可能是因为$(this).undelegate($(this));
是否有人知道如何防止此错误或有除delegate / undelegate
以外的其他方式来实现我的目标?
答案 0 :(得分:0)
看起来我搜索功能太远而没有看到最简单的解决方案。 我通过修改选择器实现了我的目标...
这是代码:
$(this).on("click", ".receivers-input:not(.tt-input)", function () {
$(this).typeahead({
minLength: 0,
}, {
on
绑定与委托一样,它将处理程序绑定到与选择器匹配的每个现有或未来元素。
由于预先输入一些数据到输入它附加到(tt-hint
,tt-input
等...),我只是添加选择器:not
女巫排除元素与先行班。
希望有一天这可能对某人有所帮助。