Div onClick With JSON调用不;t工作


Div onClick With JSON Call Doesn't Work

我有一个搜索函数,它在keyup上调用php文件。现在在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');
});

当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');
            }); 
        }
    });
}

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

使用on()方法。

查看示例:

http://jsfiddle.net/pZQ8T/