jQuery onclick 处理程序不工作

jQuery onclick handler doesn't work

我正在使用 MetroUI CSS 从数据库行创建 ListView :

<?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");
  });

});

在运行时不显示警报,并且控制台不包含任何错误;甚至日志文件也没有错误。当我右键单击该页面以查看其源代码时,记录不在!那么如何解决呢?

因为它是动态添加的 element 通过 event delegation 添加事件:

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

您需要调用一个声明该操作的函数。

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

 });
}

动态生成元素后调用该函数。