2013-02-13 25 views
0

我有一個調用php文件onkeyup的搜索函數。現在,在JQuery中我有一個的onClick功能,當您從同一個JSON點擊一個div調用它提醒的東西,也許它會更容易從我下面的代碼來理解:Div onClick使用JSON調用不起作用

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

回答

0

當Ajax調用返回成功狀態,您可以使用,例如jQuery的bind方法。 (詳情請參閱這裏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'); 
      }); 
     } 
    }); 

} 
+0

它的工作!謝謝。 – 2013-02-14 03:29:54

0

您正在動態創建元素,這是它不起作用的原因。使用on()方法。

檢查一個例子:

http://jsfiddle.net/pZQ8T/