1

javascript で独自のツールを作成しようとしています。これは、いくつかの php 関数/ファイルを div にロードするのに役立ちます。

これが私のJavaScriptです:

$(document).ready(function () {
    $('.btn').click(function() {        
        $('#someid').testit();
        //   $('#someid').load('somefile');  it works
        return false;
    })   
});

function testit() { 
    $(this).load('somefile');
}

そして私のhtml:

<div id="someid"></div>
<form>
    <input type="submit" value="test" class="btn" />
</form>

外部関数からリソースを読み込めません - なぜですか?

4

4 に答える 4

2

次のようなものを呼び出したい場合:

$('#someid').testit();

次に、メソッドを定義する jQuery プラグインを作成する必要がありますtestit。そのコードは次のようになります。

jQuery.fn.testit = function() {
    return this.load('somefile');
}

testit()次に、次のように jQuery メソッドとして使用できるのはそのときだけです。

$('#someid').testit();

そして、それは目的のセレクターで動作します。

このようなプラグイン メソッドの記述に関するjQuery ドキュメントの一部を次に示します。

于 2012-12-03T01:19:30.317 に答える
2

以下のようにする必要があります。

$.fn.testit = function () {
  return this.load('somefile');
}
于 2012-12-03T01:20:37.477 に答える
1

このような要素を渡すことができます...

$(document).ready(function () {
    $('.btn').click(function() {        
        testit($('#someid'));
        return false;
    })   
});

function testit(el) { 
    el.load('somefile');
}

または、jfriend00が言及しているようにJQueryプラグインを作成します

于 2012-12-03T01:24:18.260 に答える
1

残念ながら、そのままではそのような関数をチェーンすることはできません。プラグインを作成するには、それを jquery.fn プロトタイプに入れる必要があります。

代わりにできることは.each()、セレクターで関数を使用して関数を呼び出すことです。

あなたの場合、$("#someid").each(testit);jquery を呼び出すと、見つかった各要素に対して testit() 関数が呼び出されます。

于 2012-12-03T01:23:26.200 に答える