0

.get()呼び出し元のコンテナーに追加される追加の jQuery スクリプトを返すjQuery 関数を呼び出すリンクがあります。データは返されていますが、実行されていません。単にページに出力されているだけです。

呼び出し:

$('<a/>').attr('href', "#").addClass('link-button').html("Add New").on('click', function () {
    Loader.Show(); 
    $.get("webservice.php", {news: "addnew"}, function (data) {$("#page").empty().append(data);});
    return false;
});

返されたデータ:

$('<form/>').attr('action', "webservice.php").attr('method', "post").append(
    $('<input/>').attr('type', "hidden").attr('name', "news").val("add"),
    $('<p/>').append(
        "Title:",
        $('<input/>').attr('type', "text").attr('name', "title").attr('data-required', "true").on('focusout', function () {
            if($(this).val() == "") {$(this).addClass('required');} else {$(this).removeClass('required');}
        })
    ),
    $('<p/>').append(
        "Text:",
        $('<input/>').attr('type', "text").attr('name', "text").attr('data-required', "true").addClass('paragraph').on('focusout', function () {
            if($(this).val() == "") {$(this).addClass('required');} else {$(this).removeClass('required');}
        })
    ),
    $('<p/>').append(
        $('<input/>').attr('type', "submit").val("Post"),
        $('<span/>').addClass('availabletext')
    )
).on('submit', function () {
    Loader.Show("Posting...");
    $(this).find('[type=submit]').attr('disabled', "disabled");
    var gtg = true;
    $(this).find('[data-required=true]').each(function () {
        if($(this).val() == "") {
            $(this).addClass('required');
            gtg = false;
        } else {
            $(this).removeClass('required');
        }
    });
    if($(this).find('[data-type=vote]').val() == "No" && $(this).find('[data-type=comment]').val() == "") {
        $(this).find('[data-type=comment]').addClass('required');
        gtg = false;
    } else {
        $(this).find('[data-type=comment]').removeClass('required');
    }
    if(gtg) {
        return true;
    } else {
        $(this).find('[type=submit]').removeAttr('disabled', "disabled");
        Loader.Hide();
        return false;
    }
}).ajaxForm({success: function (data, textStatus, jqXHR) {
    $(this).parent().empty().append(data);
}, error: function () {
    $(this).append("Server timeout, please try again...");
    $("#submit-button").removeAttr('disabled');
    Loader.Hide();
}});

問題は、返されたコードが、処理および実行されるのではなく、文字通りページに出力されることです。これは可能ですか?何か不足していますか?

4

1 に答える 1

2

次のようにしてみてください:

jQuery.getScript('webservice.php?news=addnew', function() {
    console.log('script loaded!');
}); 

http://docs.jquery.com/Ajax/jQuery.getScript

于 2013-04-02T05:14:59.390 に答える