การอ้างชื่อใน jquery

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา การอ้างชื่อใน jquery

การอ้างชื่อใน jquery
hint.html ส่งค่าไป gethint.php เพื่อค้นหารายชื่อมาแสดงที่ hint.html จากนั้นคลิกที่รายชื่อเพื่อให้เป็นแถบสีแดง 
ปัญหาของผมคือมันไม่เป็นแถบสีแดง ไม่ทราบว่าผมอ้างชื่อหรือทำอะไรผิดหรือเปล่าครับ ช่วยตรวจสอบให้หน่อยครับ
ขอบคุณครับ

hint.html
<!DOCTYPE html>
<html>
<head>
<title>test jQuery</title>
<script type="text/javascript" src="../js/jquery.js"></script>
<script language="javascript">

$(document).ready(function(){
	$('button').click(function(){
	str=$('#txt_name').val();
	// ajax (get)
	$.get('gethint.php',{q:str},function(result){
		$('#ajax_result').html(result);
	});	
});
	
	
	$('li').click(function(){
		$(this).css('background-color','red');
	});
	
});

</script>
</head>
<body>
<input id="txt_name" type="text" onKeyUp="showHint(this.value)">
<button>click</button>
<br><br>
<ul id="ajax_result">
</ul>
</body>
</html>

gethint.php <?
//$q=$_GET["q"];
$q=iconv("UTF-8","windows-874",$_GET['q']);


$sql="SELECT * FROM employee_user WHERE name_en like '".$q."%' and remark<>'*' order by name_en";	


$con = mysql_connect('localhost', 'username', 'pwd');
if (!$con)  {  die('Could not connect: ' . mysql_error());  }mysql_select_db("employee", $con);
$result = mysql_query($sql);
echo "<p>".$sql."</p>";
$return_arr=array();
while($row = mysql_fetch_array($result)){
echo "<li>".$row["name_en"]." ".$row["lastname_en"]."</li>";
}
mysql_close($con);

?>

 



Pattanamate 29-08-2011 15:57:06

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

 น่าจะเป็นเพราะว่า คุณใส่  code บรรทัดนี้ไว้ก่อน  

      $('li').click(function(){

$(this).css('background-color','red');

});

โดยใส่ไว้ที่ onReady ซึ่งเป็นช่วงที่ยังไม่กด Click แปลว่า ไม่มี <li> เลยซัก 1  element 

แต่ code สั่งให้ bind แล้ว แล้วจับ event 

พอกด click มา  เจ้า li ที่เพิ่ง มา มันยังไม่ถูก bind อะครับ 

ดังนั้นคุณต้อง ใส่   code นี้

$('li').click(function(){

$(this).css('background-color','red');

});

ตอนกด click ของ button อะคับ

มันไม่เหมือน  CSS ที่  ใส่ก่อนได้ อะไรที่มาหลัง ก็ยังมีผล อิอิ

แต่ javascript มันจะ จับ element ก่อน ครับ 



jazzup 30-08-2011 10:01






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ