jQuery委托不工作?

3 jquery

我正在尝试使用委托来调用函数,当一组特定的链接被点击时.我之前在其他页面中已经使用过它.它在那里工作.但是,这次我甚至无法找到问题所在.

我的链接是动态生成的,它们看起来像

<a class="thumbLink" href="#" id="My HomeTown-1"><small>My HomeTown</small></a>
Run Code Online (Sandbox Code Playgroud)

而jQuery委托函数是,

$(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);
}
});
Run Code Online (Sandbox Code Playgroud)

更新:

我尝试了两个版本,但我无法使它工作!

$("#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);
Run Code Online (Sandbox Code Playgroud)

上面的代码是在$(document).ready(function(){});.那是对的吗??我也尝试将它们放在一个单独的js文件中.我不能让它发挥作用.

关于我的问题的任何想法!

use*_*716 5

如果这是您的实际代码的顺序,那么您在尝试初始化之前尝试传递函数表达式.

扭转他们,它应该工作:

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);
Run Code Online (Sandbox Code Playgroud)