带有JSON调用的Div onClick不起作用

时间:2013-02-13 23:48:30

标签: php jquery json html alert

我有一个调用php文件onkeyup的搜索功能。现在在JQuery中我有一个onClick函数,当你从同一个JSON调用中单击一个div时它会发出警告,也许从下面的代码中可以更容易理解:

<?php
$Connect = new mysqli("localhost", "root", "", "Data");
$Val = $_POST['Val'];

if($Val)
{
    $Search = 'SELECT * FROM Users WHERE ';
    $Term = explode(" ", $Val);

    foreach($Term as $Key)
    {
        $I = 0;
        $I++;
        if($I == 1)
        {
            $Search .= 'Username LIKE "'.$Key.'%" LIMIT 0, 10 ';
        }
        else
        {
            $Search .= 'OR Username LIKE "'.$Key.'%" LIMIT 0, 10 ';
        }
    }

    if($Result = $Connect->query($Search))
    {
        while($Row = $Result->fetch_assoc())
        {
            $User = $Row['Username'];

            $USearch['S'][] = '<div class="Result"><label class="TText" style="cursor:pointer;">' . $User . '</label></div>';
        }
    }
}
echo json_encode($USearch);
?>

现在,正如您所看到的,一旦用户键入一个框,div就会显示所有LIKE记录的用户,一旦点击div就没有任何事情发生。

$('.Result').click(function()
{
    alert('Hi');
});

2 个答案:

答案 0 :(得分:0)

您正在动态创建元素,这就是它不起作用的原因。

使用on()方法。

检查一个例子:

http://jsfiddle.net/pZQ8T/

答案 1 :(得分:0)

当ajax调用返回成功状态时,您可以使用例如jquery绑定方法。 (有关详细信息,请参阅此处http://api.jquery.com/bind/

 function myAjaxFunct(val){

   $.ajax(
    {
        type: "POST",
        url: myPhpFile.php,
        datatype: "jsonp",
        data: {val: val},
        success: function (result) {

            $("#jsonResultDisplay").text(result);

            $('.Result').bind('click', function() {
               alert('hi');
            }); 
        }
    });

}