1

我可以在从 Ajax 加载的页面上创建一些功能吗?IE

$(function() {
    $.ajax({
        url: "loaded.php",
        success: function(data) {
            $("#content").html(data);
        }
    });
    $("a#edit").click(function(e) {
        e.preventDefault();
        var newVal = $(this).closest("tr").find("#collapse").html();
        $(this).html(newVal);
    });
});

两者a#edit#collapse都是loaded.php 的元素,这段代码在index.php 页面中……这段代码可以工作吗?

4

2 回答 2

2

#content在将 html 添加到或使用委托后,您有两个选项在成功函数中附加处理程序。

选项1

    success: function(data) {
        $("#content").html(data);
        $("#edit").click(function(e) {
            e.preventDefault();
           var newVal = $(this).closest("tr").find("#collapse").html();
           $(this).html(newVal);
        });
    }

选项 2

$(function() {
    $.ajax({
        url: "loaded.php",
        success: function(data) {
            $("#content").html(data);
        }
    });
    $("#content").on('click', '#edit', function(e) {
        e.preventDefault();
        var newVal = $(this).closest("tr").find("#collapse").html();
        $(this).html(newVal);
    });
});

http://api.jquery.com/on/

于 2012-08-15T19:58:46.763 回答
0

如果您的 $("a#edit") 元素是您的 ajax 返回的内容,那么此代码将不起作用。您需要将该代码块移动到成功回调中。

$(function() {
    $.ajax({
        url: "loaded.php",
        success: function(data) {
            $("#content").html(data);
            $("a#edit").click(function(e) {
                e.preventDefault();
                var newVal = $(this).closest("tr").find("#collapse").html();
                $(this).html(newVal);
            });
        }
    });
});
于 2012-08-15T19:58:34.733 回答