2015-08-18 4 views
0

Я использую MetroUI CSS создать ListView из строк базы данных:JQuery обработчик OnClick не работает

<?php 

use Phalcon\Mvc\Controller; 

class loadReservationTablesController extends Controller 
{ 

    public function indexAction(){ 
     $request = $this->request; 
     if ($request->isPost() == true) { 
      if ($request->isAjax() == true) { 
       $critere = array(); 
       $critere['salle_code'] = $_POST['salle_code']; 
       $ret = ReservationTable::lireParCritere($critere); 
       if ($ret->count() > 0) { 
        $html = ''; 
        foreach ($ret as $key => $val) { 
         $html .= '<div class="list"> 
            <div class="list-content" id="table_'.$ret[$key]->table_code.'"> 
             <span class="list-subtitle">'.$ret[$key]->table_lib.'</span> 
             <span class="list-remark">'.$ret[$key]->reserver.'</span> 
            </div> 
            </div>'; 
        } 
        echo $html; 
       } 
       else { 
        echo '<br/><div class="sub-header">No records to display</div>'; 
       } 
      } 
     } 
     $this->view->disable(); 
    } 

} 

В представлении:

$(document).ready(function() { 

    $("div[id^='table_']").on("click", function(){ 
    alert("uuuuuu"); 
    }); 

}); 

Во время выполнения предупреждения не показывает, и консоль не содержит ошибок; даже в файле журнала нет ошибок. Когда я щелкнул правой кнопкой мыши страницу, чтобы увидеть ее исходный код, тогда записи не включены! Итак, как это исправить?

+1

Вам нужно ['делеция делегирования!] (Http://learn.jquery.com/events/event-delegation/) –

+0

спасибо @Dhaval за документ! – pheromix

ответ

3

С его динамически добавлены element добавлять события через event delegation:

$(document).ready(function() { 
    $(document).on("click","div[id^='table_']", function(){ 
      alert("uuuuuu"); 
    }); 
}); 
+0

он не работает! – pheromix

+0

Это визуализация управления на вашей странице? –

+0

да Я вижу это в исходном коде страницы. – pheromix

0

Вам нужно вызвать функцию, объявляющий действие.

function reDeclare(){ 
$("div[id^='table_']").on("click", function(){ 
     alert("uuuuuu"); 
    }); 

}); 
} 

Вызвать эту функцию после того, как вы сгенерировали элемент динамически.

Смежные вопросы