私は小さなプロジェクトを作成しています。基本的には Codeigniter で CRUD タイプのプロジェクトです。私は Messi Jquery Modal Library を使用しており、コントローラーを Messi.load ajax でロードしています。
問題。
// Edit Operator
$('.edit_details').on('click', function() {
var edit_id = $(this).attr('id');
$.getScript("<?php echo $this->config->base_url() ?>media/js/jquery-1.10.2.min.js");
Messi.load('<?php echo $this->config->base_url() ?>index.php/option/detail/' + edit_id);
$.getScript("<?php echo $this->config->base_url() ?>media/js/validation.js");
});
ajaxでモーダルボックスをロードすると、jqueryライブラリと、モーダルコンテンツ用のjquery関数もロードされます。たとえば、validation.jsです。
コントローラ
// check operator
public function detail($id)
{
$this->load->model('Option_Model', 'option');
$data['result'] = $this->option->checkOperator($id);
$data['states'] = $this->option->getStates();
$this->load->view('option', $data);
}
ajax の読み込みの問題を除いて、すべてが完全に機能します。私はプロジェクトをほぼ終了しましたが、突然、jqueryが正しく機能しないことがわかりました。
例えば:
Messi モーダル ボックスの 1 つをロードするときは、IP アドレスの検証が必要なビューをロードするため、$.getscript を使用して ip.address.js jquery プラグインもロードします。うまくいくこともあれば、うまくいかないこともあります。できることはすべて検索しましたが、問題の理由、なぜそれが機能するのか、機能しないのかを理解できませんでした。
また、これらのモーダルボックスには多くの ajax jquery 関数があり、正常に動作しますが、$.getscript からロードする関数には問題が発生することがあります。
編集済み: ここに私のモーダル ボックスの IP アドレス宣言があります。
var ipAddress = (function(){
$('.ip').ipAddress();
});
ipAddress();
魔法 の最初の 2 回の試行は機能しませんでしたが、3 回目の試行は機能しました。