0

私はjqueryが初めてで、Processing.jsでのjqueryの使用について疑問があります

サイドバーにいくつかのリンクがあります。それらのそれぞれがレッスンであり、これらのレッスンの1つに

<p>blablablablabla</p>
<div id='processing'></div>

()

次に、ユーザーがレッスン (上記のコンテンツ) をクリックすると、Web ページがコンテンツを更新し、jquery プラグインを呼び出します。id #processing が見つかった場合は、呼び出します

$.Processing('#processing', 'afile.pde') 

(プラグイン)

(function(){

var src = './processing-1.3.6.js'

$.Processing = function(parent, file){
    var appendScript = function(){
        $('head').append(function(){
            return $('<script></script>').attr('src', src).html('added processing script');
        })
    }

    var appendProcessing = function(){
        $(parent).append(function(){
            var $c = $('<canvas></canvas>');
            var p = Processing.loadSketchFromSources($c, [file])
            return  $c;
        });    
    }

    appendScript();
    appendProcessing();
}
}())

問題は、関数 '$('head')append が呼び出されていないことです。Chrome でテスト済み

ありがとう

4

1 に答える 1

1

1) Processing.loadSketchFromSources には、jQuery オブジェクトではなく、プレーンな createElement オブジェクトが必要です。したがって、次の行を変更する必要があります。

間違っています: var $c = $('<canvas></canvas>');
正しい: var $c = document.createElement('canvas');

jQuery オブジェクトが本当に必要な場合は、$c の代わりに $c[0] を使用して jQuery オブジェクトから純粋な createElement を取得する必要があるため、これも機能します:
var p = Processing.loadSketchFromSources($c[0] 、 [ファイル]);

2) script タグ内で </script> 文字列を使用しないでください。スクリプトが終了します。

間違い: return $('<script></script>')
正しい: return $('<script></scr'+'ipt>')

3) <script> タグ内の html は必要ありません。スクリプトには HTML コードが含まれていないためです:
HTML は使用されていません: $('<script></scr'+'ipt>').attr('src', src).html('追加処理スクリプト');
正しい: $('<script></scr'+'ipt>').attr('src', src);

これは、コードを試して確認したい場合に、完全なスクリプトが正しく機能するページです (外部の Processing .pde ファイルをロードして実行します):
http://www.js.do/processing-js/gcravista-sample.htm

于 2012-06-15T17:37:09.897 に答える