一个班级的另一个功能完美,但这个似乎给我带来了麻烦。没有控制台错误或任何东西,它只是不会触发。
编辑:新JSFIDDLE http://jsfiddle.net/yTkTd/9/
答案 0 :(得分:3)
将a .delegate()
handler放在#showList
上,以便处理动态创建的.show
元素的点击次数。
以下是您更新的示例: http://jsfiddle.net/yTkTd/11/
$('#showList').delegate('.show', 'click', function() {
showID = $(this).attr("id");
$(".show").fadeOut("slow");
$(this).fadeIn("slow");
$.getJSON('https://api.phish.net/api.js?api=2.0&method=pnet.shows.setlists.get&format=json&apikey=A9E68C2561D7442F041C&callback=?&showid='+showID, function pnet3setlist(data) {
$('#showList').append("<div>");
for (i = 0; i < data.length; i++) {
var n = data[i];
$('#setList').append("<a class='show' href='#' id='setlist"+n['showid']+"'>"+n['setlistdata']+"</a>");
}
$('#showList').append("</div>");
});
});
答案 1 :(得分:1)
附加点击处理程序后,动态添加.show
个元素。您应该使用.live()
代替:
$(".show").live("click", function() {
alert('hello');
});
这将表现相同,但会导致jQuery在文档级别(始终存在)侦听单击事件,但会检查源元素是否为".show"
。
答案 2 :(得分:0)
将框架更改为jQuery。目前Mootools是你的图书馆。
答案 3 :(得分:0)
你使用JSFiddle设置在使用jQuery时使用mootools。我更新并运行,点击工作正常...... http://jsfiddle.net/yTkTd/6/