الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن كود jQuery

بدأه Waleed-KH في 30 أغسطس 2012 · 4 رد · 849 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

في الصفحه دي

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl"  class="ahome">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title></title>
	<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

        $(".subnav1").hide();
        $(".nd1").show();

    $('.nd1').click(function(){
    $(".subnav1").toggle('',function(){$('.nav1').toggleClass('active', $(this).is(':visible'));});
    });


        $(".subnav2").hide();
        $(".nd2").show();

    $('.nd2').click(function(){
    $(".subnav2").toggle('',function(){$('.nav2').toggleClass('active', $(this).is(':visible'));});
    });


        $(".subnav3").hide();
        $(".nd3").show();

    $('.nd3').click(function(){
    $(".subnav3").toggle('',function(){$('.nav3').toggleClass('active', $(this).is(':visible'));});
    });

});

</script>

</head>

						<ul>
							<li class="nav1">
								<div class="nd1"><p>text</p></div>
								<ul class="subnav1" >
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
								</ul>
							</li>
						</ul>
						<ul>
							<li class="nav2">
								<div class="nd2"><p>text</p></div>
								<ul class="subnav2" >
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
								</ul>
							</li>
						</ul>
						<ul>
							<li class="nav3">
								<div class="nd3"><p>text</p></div>
								<ul class="subnav3" >
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
								</ul>
							</li>
						</ul>
</body>

</html>

اقوم بتكرار كود jQuery عند وضع قوائم جديده و اريد كود جديد لا اضطر لتكراره عند وضع قائمه جديده

بمعني اني عايز اعرف ازاي اضيف قوائم

						<ul>
							<li class="nav1">
								<div class="nd1"><p>text</p></div>
								<ul class="subnav1" >
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
									<li><a href="#"><p>text</p></a></div></li>
								</ul>
							</li>
						</ul>

من غير ما اضطر اعملها كود jQuery مخصص

 
        $(".subnav1").hide();
        $(".nd1").show();

    $('.nd1').click(function(){
    $(".subnav1").toggle('',function(){$('.nav1').toggleClass('active', $(this).is(':visible'));});
    });

يعني عايز كود jQuery يخلي لما ادوس علي nd* تظهر القائم الفرعيه بتاعتها subnav* و تغير استايل nav* لactive من غير ما اضطر اعمل لكل واحد كود مخصص

اتمني اني اكون وضحت اللي عايزو

و شكرا للمساعده

تم تعديل هذه المشاركة بواسطة Waleed-KH في 30 أغسطس 2012 في 00:49

#2

هذا التعديل في Javascript:

<script type="text/javascript">
$(document).ready(function(){

        $(".subnav").hide();
        $(".nd").show();

    $(".nd").click(function(){
		$(this).next(".subnav").toggle(function(){
				$(this).parent(".nav").toggleClass('active', $(this).is(":visible"));
			}
		)
	});
});
</script>

وهذا تعديل (أسماء الكلاسات)، جميعها تصبح تحمل ذات الاسم ويتم تحديد العناصر المطلوبة بـ .next(...) و .parent(...) في jQuery.

<ul>
		<li class="nav">
				<div class="nd"><p>text 1</p></div>
				<ul class="subnav" >
						<li><a href="#"><p>text 1-1</p></a></div></li>
						<li><a href="#"><p>text 1-2</p></a></div></li>
						<li><a href="#"><p>text 1-3</p></a></div></li>
						<li><a href="#"><p>text 1-4</p></a></div></li>
				</ul>
		</li>
</ul>
<ul>
		<li class="nav">
				<div class="nd"><p>text 2</p></div>
				<ul class="subnav" >
						<li><a href="#"><p>text 2-1</p></a></div></li>
						<li><a href="#"><p>text 2-2</p></a></div></li>
						<li><a href="#"><p>text 2-3</p></a></div></li>
						<li><a href="#"><p>text 2-4</p></a></div></li>
				</ul>
		</li>
</ul>
<ul>
		<li class="nav">
				<div class="nd"><p>text 3</p></div>
				<ul class="subnav" >
						<li><a href="#"><p>text 3-1</p></a></div></li>
						<li><a href="#"><p>text 3-2</p></a></div></li>
						<li><a href="#"><p>text 3-3</p></a></div></li>
						<li><a href="#"><p>text 3-2</p></a></div></li>
				</ul>
		</li>
</ul>

تم تعديل هذه المشاركة بواسطة Xacker في 30 أغسطس 2012 في 03:41

1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3
Xacker كتب:

هذا التعديل في Javascript:

<script type="text/javascript">
$(document).ready(function(){

        $(".subnav").hide();
        $(".nd").show();

    $(".nd").click(function(){
		$(this).next(".subnav").toggle(function(){
				$(this).prev(".nav").toggleClass('active', $(this).is(":visible"));
			}
		)
	});
});
</script>

وهذا تعديل (أسماء الكلاسات)، جميعها تصبح تحمل ذات الاسم ويتم تحديد العناصر المطلوبة بـ .next(...) و .prev(...) في jQuery.

<ul>
		<li class="nav">
				<div class="nd"><p>text 1</p></div>
				<ul class="subnav" >
						<li><a href="#"><p>text 1-1</p></a></div></li>
						<li><a href="#"><p>text 1-2</p></a></div></li>
						<li><a href="#"><p>text 1-3</p></a></div></li>
						<li><a href="#"><p>text 1-4</p></a></div></li>
				</ul>
		</li>
</ul>
<ul>
		<li class="nav">
				<div class="nd"><p>text 2</p></div>
				<ul class="subnav" >
						<li><a href="#"><p>text 2-1</p></a></div></li>
						<li><a href="#"><p>text 2-2</p></a></div></li>
						<li><a href="#"><p>text 2-3</p></a></div></li>
						<li><a href="#"><p>text 2-4</p></a></div></li>
				</ul>
		</li>
</ul>
<ul>
		<li class="nav">
				<div class="nd"><p>text 3</p></div>
				<ul class="subnav" >
						<li><a href="#"><p>text 3-1</p></a></div></li>
						<li><a href="#"><p>text 3-2</p></a></div></li>
						<li><a href="#"><p>text 3-3</p></a></div></li>
						<li><a href="#"><p>text 3-2</p></a></div></li>
				</ul>
		</li>
</ul>

شكرا علي المساعده

بس استايل nav مش بيتغير بعد الضغط

#4

استبدل هذا الجزء:

$(this).parent(".nav").toggleClass('active', $(this).is(":visible"));

* قمت بتعديل المشاركة السابقة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5
Xacker كتب:

استبدل هذا الجزء:

$(this).parent(".nav").toggleClass('active', $(this).is(":visible"));

* قمت بتعديل المشاركة السابقة.

متشكرا جدا علي المساعده :)

جزاك الله خيرا

مواضيع مشابهة