0

ボタンをクリックしてデータベースにレコードを追加するモジュールのスケルトンがあります。

var Person = (function () {
    var ajaxOpts = {
        type: "POST",
        url: "",
        contentType: "application/json",
        dataType: "json",
        success: function () { },
        error: function () { },
        data: {}
    }
    function insert(data) {
        ajaxOpts.url = "../Service.asmx/InsertPerson";
        ajaxOpts.data = JSON.stringify(data);
        ajaxOpts.error = function (xhr) {
            console.log(xhr.status);

        };
        ajaxOpts.success = function (data) {
            console.log('record successfully added');
            console.log(data.d);

        }
        $.ajax(ajaxOpts);
    };
    return {
        insert: insert
    }
} ());

そして、私は自分のウェブページから次のように呼び出します:

$(document).ready(function () {
            $('#btnSubmit').click(function () {
                var data = {
                    personId: $('#personId').val(),
                    firstName: $('#firstName').val(),
                    lastName: $('#lastName').val()
                };
                Person.insert(data);
            });
        });

$このコードを変更して、それが別のライブラリではなく jQuery オブジェクトであることを確認するにはどうすればよいですか?

4

2 に答える 2

1

プラグインの場合、通常はコードを IIFE でラップし、 にマップjQuery$ます。モジュールに対して同じことを行うことができます (すでに IIFE を持っている場合でも):

var Person = (function($) {
    // ...
}(jQuery));

コールバックの場合document.ready、jQuery への参照がコールバックに渡されます。

jQuery(document).ready(function($) {
    // ...
});

jQuery関数の外で使用していることを確認してください。

于 2013-11-15T02:05:34.367 に答える
0

メインページのコードを次のように置き換えてみてはいかがでしょうか:

(function($) {
    $('#btnSubmit').click(function () {
        var data = {
            personId: $('#personId').val(),
            firstName: $('#firstName').val(),
            lastName: $('#lastName').val()
        };
        Person.insert(data);
    });
}(jQuery));
于 2013-11-15T02:03:19.673 に答える