Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ใครเทพ jquery+php มั้งครับ เรียก function มัน double ครับ ทำยังไงให้เรียกครั้งเดียว



 

ใครเทพ jquery+php มั้งครับ เรียก function มัน double ครับ ทำยังไงให้เรียกครั้งเดียว

 



Topic : 086187



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์




ผมทำเว็บ infinite scroll ครับ คือ load ข้อมูลไปเรื่อยๆ เมื่อ scroll สิ้นสุด page


$(document).scroll(function(){
onScrollCallGrid(); // start infinite scroll

});

ส่วน onScrollCallGrid

function onScrollCallGrid(event) {
$('#TopMenu').css({'top': $(this).scrollTop() + "px"});//fix top menu alway

//$('#sss').attr('value',$(window).scrollTop()+'='+($(document).height() - $(window).height()));
$('#scrollCurrent').val($(window).scrollTop());
$('#scrollBottom').val(($(document).height() - $(window).height()));



if($('#scrollCurrent').val()==$('#scrollBottom').val() )
{

$('#main').load('CallGrid.php?current_list='+$('#current_list').val()+'&time_stamp_token='+$('#time_stamp_token').val()+'&md5token='+$('#md5token').val(),function(){
return false;
});

}


}

มันก็ทำงานได้ปกติเมื่อลาก mouse สุด page ก็เรียกข้อมูลมาต่อท้ายไปเรื่อยๆ

แต่ปัญหาคือ บางครั้งมันเรียก CallGrid.php เบิ้ล 2 ครั้งครับ บางครั้งก็ไม่
ทำยังไงให้เรียก CallGrid.php ครั้งเดียวหรือจนกว่าจะโหลดเสร็จค่อยเรียก CallGrid.php ได้อีกครั้ง

ผลที่ได้มันทำให้ข้อมูลแสดงซ้ำกัน เพราะเรียก 2 ครั้ง

ขอบคุณมากๆ ครับ



Tag : PHP, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-11-02 17:55:03 By : slack_man View : 1244 Reply : 4
 

 

No. 1



โพสกระทู้ ( 1,521 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

ลองใช้ ajax แทน load ดู เพราะบางทีอาจมีปัญหากับ cache

Code (PHP)
$.ajax("url",{
	cache:false,
	success: function(data){
		$('#Target').html(data);
	},
	dataType:"html"
})







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-02 23:51:12 By : Krungsri
 


 

No. 2



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ลองแล้วไม่ได้ครับ

ขอบคุณครับ พอมีวิธีอื่นๆ มั้ยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-03 00:09:40 By : slack_man
 

 

No. 3



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


คุณ slackman
เท่าที่ผมเห็นก็มีแค่ syntax ของตัวฟังก์ชั่น css() ที่ต้องเปลี่ยนนิดหน่อย
jQuery จะไม่เหมือนกับ css style sheet ตรงที่ใช้เครืองหมาย ',' แทนตัว ':'

โค้ดข้างล่างนี้
Code (JavaScript)
$('#TopMenu').css({'top': $(this).scrollTop() + "px"});//fix top menu alway


ควรเป็น
Code (JavaScript)
 
$('#TopMenu').css('top', $(this).scrollTop() + 'px');//fix top menu alway



อีกประเด็นหนึ่งนะครับ เป็นข้อเสนอแนะให้เท่านั้น
ถ้าต้องทำการคำนวณ ผมแนะนำให้ใช้ตัวแปรเป็นตัวเก็บค่า จะสะดวกมากกว่าการผ่านและดึ่งค่าจากตัว element
อย่างเช่นตัวอย่างข้างล่างนี้

Code (JavaScript)
		function onScrollCallGrid(event) {
			var top = $(this).scrollTop() + 'px';
			$('#TopMenu').css('top', top);//fix top menu alway
			
			var dh = $(document).height();
			var wh = $(window).height();
			var current = $(window).scrollTop();
			var bottom =  dh - wh;
			
			if(current == bottom ) {
			
				$('#main').load('CallGrid.php?current_list='+$('#current_list').val()+'&time_stamp_token='+
				$('#time_stamp_token').val()+'&md5token='+$('#md5token').val(), function(){
				return false;
				});
			}
		}




ประวัติการแก้ไข
2012-11-03 16:53:53
2012-11-03 16:56:40
2012-11-03 17:00:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-03 16:46:18 By : dreamlover
 


 

No. 4



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


คุณ slackman

พอทำเสร็จผมเพิ่งเห็นตัว bracket {} ที่คุณใส่ไว้ ขออภัยด้วยครับ
ที่ผมบอกมาไม่น่าจะเกี่ยวข้องแต่ลองดูใหม่ได้ครับ
ปกติผมจะใช้แบบด้านล่างนี้

Code (JavaScript)
$('#TopMenu').css('top', $(this).scrollTop() + 'px'); //fix top menu alway

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-03 16:52:16 By : dreamlover
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใครเทพ jquery+php มั้งครับ เรียก function มัน double ครับ ทำยังไงให้เรียกครั้งเดียว
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่