0

我有一个调用 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,一旦单击该 div,什么都不会发生。

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

2 回答 2

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

}
于 2013-02-14T02:01:18.090 回答
0

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

使用on()方法。

检查一个例子:

http://jsfiddle.net/pZQ8T/

于 2013-02-14T01:44:56.607 回答