jQuery委托不工作?
当一组特定的链接被单击时,我尝试使用委托调用函数。 我以前已经在其他页面中使用过它。它是在那里工作的。但是,这一次我甚至无法找到问题所在 我的链接是动态生成的,它们看起来像jQuery委托不工作?,jquery,Jquery,当一组特定的链接被单击时,我尝试使用委托调用函数。 我以前已经在其他页面中使用过它。它是在那里工作的。但是,这一次我甚至无法找到问题所在 我的链接是动态生成的,它们看起来像 <a class="thumbLink" href="#" id="My HomeTown-1"><small>My HomeTown</small></a> 上述代码位于$(document).ready(function(){})中。对吗?? 我还尝试将它们放在一个单独的
<a class="thumbLink" href="#" id="My HomeTown-1"><small>My HomeTown</small></a>
上述代码位于$(document).ready(function(){})中代码>。对吗??
我还尝试将它们放在一个单独的js
文件中。我不能让它工作
你知道我的问题吗 在定义函数表达式之前使用它。这不管用。在委托()调用中使用常规函数声明(function loadAlbum(){/*…*/}
)或定义this.loadAlbum
(this.loadAlbum=function(){/*…*/}
),然后再将其用于委托()调用。如果这是实际代码的顺序,您试图在函数表达式初始化之前传递它
将它们反转,它应该会起作用:
this.loadAlbum = function(){
var id = this.id;
var number = id.lastIndexOf("-");
var alubmName = id.subString(0, number);
alert(albumName);
}
$("#albumHolder").delegate('a.thumbLink', 'click', this.loadAlbum);
我试过了。这对我不起作用。我已经用结果更新了这个问题。#@patrick dw:它不起作用。我也厌倦了使用.live()
。它也不起作用。这对你有意义吗!!!无论如何,我已经用try
结果更新了我的问题。@CS 1.6-是否也动态创建了#albumHolder
元素?另外,您是否有可能在这个项目上使用较旧版本的jQuery?@CS 1.6-好的,是的,您需要在创建委托时手动为其分配delegate()
处理程序,或者使用.live()
而不是.delegate()
。(我建议坚持使用.delegate()
)@patrick dw:使用它的直接父id是规则吗!!!或者我应该使用任何其他的#id,例如,我应该使用a
来处理这个html
@CS 1.6:我不太清楚你的意思。如果您的意思是在使用.delegate()
时,可以指定目标元素的任何祖先。它不需要是直接的父母。编辑:很高兴你让它工作了o)
$("#albumHolder").delegate('a.thumbLink', 'click', function loadAlbum(){
var id = this.id;
var number = id.lastIndexOf("-");
var alubmName = id.subString(0, number);
alert(albumName);
});
this.loadAlbum(){
var id = this.id;
var number = id.lastIndexOf("-");
var alubmName = id.subString(0, number);
alert(albumName);
}
$("#albumHolder").delegate('a.thumbLink', 'click', this.loadAlbum);
this.loadAlbum = function(){
var id = this.id;
var number = id.lastIndexOf("-");
var alubmName = id.subString(0, number);
alert(albumName);
}
$("#albumHolder").delegate('a.thumbLink', 'click', this.loadAlbum);