当一组特定的链接被点击时,我尝试使用委托(delegate)来调用函数。 我之前已经在其他页面使用过它。它在那里工作。但是,这次我什至找不到问题出在哪里。
我的链接是动态生成的,它们看起来像
<a class="thumbLink" href="#" id="My HomeTown-1"><small>My HomeTown</small></a>
jQuery 委托(delegate)函数是,
$(document).ready(function(){
$("#albumHolder").delegate('a.thumbLink', 'click', this.loadAlbum);//albumHolder is div ID that holds all the <a> elements
this.loadAlbum = function(){
var id = this.id;
var number = id.lastIndexOf("-");
var alubmName = id.subString(0, number);
alert(albumName);
}
});
更新:
我尝试了两个版本,但我无法使其工作!
$("#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);
以上代码位于$(document).ready(function(){});
中。那是对的吗??
我还尝试将它们放入单独的 js 文件中。我无法让它发挥作用。
关于我的问题有什么想法吗!!!
最佳答案
如果这是您实际代码的顺序,那么您将尝试在初始化之前传递函数表达式。
反转它们,它应该可以工作:
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);
关于jQuery 委托(delegate)不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4231058/