类单击不会触发

时间:2011-01-06 22:34:33

标签: javascript jquery html css

http://jsfiddle.net/yTkTd/

一个班级的另一个功能完美,但这个似乎给我带来了麻烦。没有控制台错误或任何东西,它只是不会触发。

编辑:新JSFIDDLE http://jsfiddle.net/yTkTd/9/

4 个答案:

答案 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/