jQuery onclick处理程序不起作用

时间:2015-08-18 09:07:07

标签: jquery phalcon metro-ui-css

我正在使用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");
  });

});

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

2 个答案:

答案 0 :(得分:3)

由于动态添加了element通过event delegation添加事件:

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

答案 1 :(得分:0)

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

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

 });
}

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