4

私は code-igniter を使用しており、一部のビューには jquery が必要です。これらは複数の場所で使用する必要があるため、ファイル内で jquery を呼び出す必要がありますが、外部ファイルを参照しているため、$(document.ready) への呼び出しは jquery をロードする前に評価され、失敗します。本体にjqueryを入れても、javascriptが評価される前にロードすることは可能ですか? あるいは、問題のファイルの前に呼び出されたヘッダーに、コードイグナイターを介して jquery が必要であるという事実を渡す何らかの方法があります。

ビューで:

echo $this->import->js('jquery.js','jquery');
echo '<script type="text/javascript">
$(document).ready(function(){$(\'div#login.rounded\').corner();})
</script>';

このページはhttp://formulator.codingproject.net/content/login/で表示できます。

: このページは実際には自宅のマシンにあるため、recaptcha が失敗することが予想されます。

4

6 に答える 6

2

jQuery は実際には head 要素で呼び出す必要があります。条件付きでそれを行う方法は次のとおりです(テストされていません)。

コントローラーでは、jQuery を必要とする各関数に次のものが必要です。

$data['need_jquery'] = true;
$this->load->view('header');

ヘッダー ビューで:

<head>
    <? if($need_jquery) { ?>
        <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" /></script>
    <? } ?>
</head>
于 2010-08-31T19:44:11.203 に答える
2

答えはイエスだと思います。にロードできjQuery.jsますbody。ただし、スクリプトタグはjQuery.js 宣言の後にのみ記述する必要があります。そうしないと、エラーが発生する可能性があります:)

PS:私が間違っている場合は修正してください:)

于 2010-08-31T19:41:53.243 に答える
1

PHPを使用しているように見えますか?その場合、その文字列を返す静的メソッドを作成しますが、このリクエストにまだ含まれていない場合に限ります。その後、一度だけ含まれていることを確認できます。

于 2010-08-31T19:40:16.323 に答える
0

うーん、多分私は間違っている。しかし、ソース コードを表示して jquery ファイルの場所をたどると、http ://www.formulator.com/assets/scripts/jquery/jquery.jsというエラーが表示されます。だから私はこれが問題になる可能性があると推測しています。php が出力する方法に、正しいドメイン/サブドメインが含まれていない可能性がありますか?

于 2010-09-01T02:16:00.597 に答える
0

私のウェブサイトも同じです。私がしていることは、すべてのページに読み込まれる 1 つのヘッダーがあることです。そのヘッダーで私はしますif($this->uri->segment(2) == 'controller')。次に、そのコントローラーに必要な場合は、jQuery と特定のスクリプトを読み込みます。

于 2010-08-31T19:44:30.147 に答える
0

すべてのページのタグに jQuery が含まれていれば問題ないと思いますが、それほど重くない jQuery の縮小版を使用できます。

于 2010-08-31T19:47:32.280 に答える