لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
مشكلة في شريط أخباري باستخدام JQuery
السلام عليكم
لدي مشكلة في شريط أخباري يقوم بعرض الاخبار باستخدام JQuery
المشكلة هي كالتالي :
قمت باستخدام الإضافة jquery.innerfade.js
كود الإستدعاء

$(document).ready(function() {
	$('#news').innerfade({
		animationtype : 'slide',
		speed : 750,
		timeout : 4000,
		type : 'random',
		containerheight : '1.5em'
	});
});
و كود HTML
<ul id="news">
</li>News1<li>
</li>News2<li>
</ul>
و هي تعمل بهذا الشكل بشكل صحيح و بدون أي مشاكل .. المشكلة هي أنني عند محاولة أن اقوم برسم كود HTMl باستخدم Ajax فإن كود HTML يتم رسمه بشكل مباشر ولا يتم تطبيق أي من ال jQuery عليها .. :( حيث قمت باستخدام ما يلي لإحضار المحتوى
$(function() {
	setInterval("get_news_imp()", 3000);
});
function get_news_imp() {
    $.ajax(
    	{
    		type: "GET",
    		url: "/breakingnews/news_imp.php",
			success: function(html){$("#news").append(html);}
	    });
}
		
وملف news_imp.php

<?php 
include_once("settings.php");
$imp_news = News::get_news("WHERE `news_status` = 'important' AND ".time()." < `news_time` + `news_period`");

foreach($imp_news as $new) {
	$imp_news_content = News::get_new_content($new['news_id'], WEBSITE_LANG);
	echo "<li><a href='index.php?news=".$new['news_id']."'>".$imp_news_content['news_title']."</a></li>";
}
?>
تاريخ البداية: 11 / نوفمبر / 2011 الساعة 23:11 اخر نشاط: 2 / يناير / 2012 الساعة 14:32 مشكلة شريط أخبار Jquery innerfade

اعتقد لابد من فعل هذا من خلال تعديل واضافة دالة داخل الاضافة نفسها وليس من الخارج حتى تستطيع تطبيق دوال التحويل عند الاستيراد
12 / نوفمبر / 2011 الساعة 12:17

لم أستطع حل المشكلة إلى الآن .. ولا أعرف بالضبط ما الذي يحصل مع ال JQuery .. أجدها أصعب مما يقولون عنها ..
12 / نوفمبر / 2011 الساعة 16:18

لا صعبة ولا حاجة .. عشان تعمل كدة لازم تدخل الخاصية نفسها جوا الـPlugin
12 / نوفمبر / 2011 الساعة 16:33

يعني قصدك ادخل على ال plugin و عدل عليها ؟؟
12 / نوفمبر / 2011 الساعة 16:53

هذه تقريبا الطريقة الوحيدة لانه تأخذ عناصر الـli وتضع عليها استيلات خاصة بدالة معينة مثلا ، فعليك عند الاستيراد استدعاء هذه الدالة على المحتويات الجديدة
12 / نوفمبر / 2011 الساعة 18:41

2 إجابات
اعتقد ان الحل في هذه الداله http://api.jquery.com/live/

بواسطة: alf2ares
منذ: 13 / نوفمبر / 2011 الساعة 21:6

هذه الدالة بالفعل تحل الكثير من المشكلات المماثلة
2 / يناير / 2012 الساعة 14:32

هذا امر طبيعى للغاية لان الكود يتطبق لاول مرة وعند الانتهاء يعرضه لذلك جرب عند الاتيان بشىء جديد ياما تدخله مطبق عليه ما تطبقه عليه الاضافة او تعيد تشغيل الاضافة مرة اخرى كمثال غير مجرب
$(function() { 
    setInterval("get_news_imp()", 3000); 
}); 
function get_news_imp() { 
    $.ajax( 
        { 
            type: "GET", 
            url: "/breakingnews/news_imp.php", 
            success: function(html){
                $("#news").append(html);
                $('#news').innerfade({
                    animationtype : 'slide',
                    speed : 750,
                    timeout : 4000,
                    type : 'random',
                    containerheight : '1.5em'
                });                
            } 
        }); 
} 
         

بواسطة: Dina
منذ: 12 / نوفمبر / 2011 الساعة 12:0

لم ينجح الأمر .. نفس المشكلة . يتم كتابة الكود دون تطبيق أي شيء عليه :( ..
12 / نوفمبر / 2011 الساعة 12:26

شكرا لك أختي .. لقد تم حل المشكلة ^_^ بفضل الكود الذي أرسلته لي .
^_^
12 / نوفمبر / 2011 الساعة 18:53

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة