6 پست در این موضوع قرار دارد

سلام و درود

دوستان گرامی من با تابع addclass در جی کوئری به مشکل خوردم. می خوام کلاس buy-butt رو به یک تگ a خاص اضافه کنم اما جواب نمیده!؟

$( ".package-info .textwidget p a" ).addClass( "buy-butt" );

 

0

به اشتراک گذاری این پست


لینک به پست

سلام و درود @unid_user

 

کدت که درسته ممکنه کدت قبل از لود کامل DOM اجرا بشه.

به این شکل کن کدت رو شاید نتیجه داد.

(function($) {
	$(function() {
		$(".package-info .textwidget p a").addClass("buy-butt");
	});
})(jQuery);

 

1

به اشتراک گذاری این پست


لینک به پست
در 7 ساعت قبل، mehran-be گفته است :

سلام و درود @unid_user

 

سلام. ممنون. همین الان که وارد سایت شدم دیدم درست شده. منظور از DOM چیه؟

0

به اشتراک گذاری این پست


لینک به پست
در 40 دقیقه قبل، unid_user گفته است :

منظور از DOM چیه؟

منظور این بود تا زمانی که اون تگ a شما لود نشده باشه توی مروگر جاوا اسکریپت نمیتونه بهش دسترسی داشته باشه و کلاس بهش اضافه کنه.

به طور مثال اگر کدی که قرار دادید توی بخش head صفحه باشه و تگ a شما هم که طبیعتا در body هست وقتی کد اجرا میشه هنوز لینکه اضافه نشده به صفحه که جی کوئری بهش کلاس اضافه کنه.

1

به اشتراک گذاری این پست


لینک به پست
در هم اکنون، mehran-be گفته است :

منظور این بود تا زمانی که اون تگ a شما لود نشده باشه توی مروگر جاوا اسکریپت نمیتونه بهش دسترسی داشته باشه و کلاس بهش اضافه کنه.

خوب این موضوع مشکل ایجاد میکنه دیگه درسته؟ مثلا من درون صفحه یه تگ a د ارم و میخوام استایل خاصی رو بگیره و اگه تگ مورد نظر لود نشه خیلی خوشایند نیست. راه حلش همون پاسخ قبلی تون هست؟

0

به اشتراک گذاری این پست


لینک به پست
در 5 دقیقه قبل، unid_user گفته است :

خوب این موضوع مشکل ایجاد میکنه دیگه درسته؟ مثلا من درون صفحه یه تگ a د ارم و میخوام استایل خاصی رو بگیره و اگه تگ مورد نظر لود نشه خیلی خوشایند نیست. راه حلش همون پاسخ قبلی تون هست؟

بله راه حلش اینه که کد شما بعد از لود کامل HTML اجرا بشه.

که توی جی کوئری باید کد ما داخل:

$(document).ready(function() {
  // Your Code
});

// OR

$(function() {
  // Your Code
});

قرار بگیره.

در صورتی هم که از جی کوئری استفاده نمیکنید باید کد شما داخل:

document.addEventListener('DOMContentLoaded', function () {
  // Your Code
});

قرار بگیره.

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط jistili1
      سلام دوستان.
      ببینید من یک فرم دارم که فقط دو input داره.یک اینپوت متن و یک اینپوت سابمیت.توی اینپوت متن ، کاربر کد imdb یک فیلم رو میده.بعد فرم من با ajax ارسال میشه.فرض بگیریم مقادیر برای صفحه check.php ارسال بشه.حالا من توی صفحه check.php همچین کدی رو دارم:
      <?php if(isset($_POST["btn"])) { echo file_get_contents("http://mydiba.club/".$_POST["link"]."/"); ?> <script src="jquery-3.4.1.js"></script> <script> $(document).ready(function(){ $(".-dl .Block_dl").each(function(){ var href=$(this).find(".dublboxa:first-of-type").attr("href"); $.ajax({ url:"check2.php", method:"POST", data:"link="+href }); }); }); </script> <?php } ?> اگه به کد دقت کنید ، وقتی کاربر کد imdb یک فیلم رو وارد کرد ، در صفحه check کل محتویات اون فیلم که در یکی از سایت های دانلود فیلم هست echo میشه.بعد در این قسمت یک ajax دیگه هم داریم که خودش توی یک صفحه check هست.کار این قطعه کد ajax که در جی کوئری نوشته شده اینه که تمامی لینک های دانلود اون فیلم رو از سایت دانلود فیلم بگیره و ببره به یک صفحه check دیگر که در اینجا اسمش check2.php هست.خودتون میتونید کد رو ببینید.حالا اینکه توی صفحه check2.php چی هست دیگه مهم نیست.خلاصشو بگم : من اینکارو کردم ولی همونطور که فکرشو میکردم انجام نشد.شما چه راه حلی برای این کار دارید؟در واقع الان با دو تا ajax تو در تو روبرو هستیم.
      یک قسمت از کد من اشکال داره یا در کل غیر استاندارد نوشتم؟اگه میشه یه راه حل بگید که اینکار رو بتونم انجام بدم.دقت کنید که اون قسمت از کد جی کوئری که از متد each استفاده کردم ، برای اینه که به ازای هر لینکی که در صفحه اون فیلم در سایت دانلود وجود دارد ، یک بار این ajax که خودش توی صفحه check یک ajax دیگست رو انجام بده.
      خیلییی خیلییی ممنون میشم اگه کمکم کنید.
      ضمنا از curl هم نمیخوام استفاده کنم
    • توسط SadraHkm
      سلام دوستان
      امیدوارم حالتون خوب باشه
      لطفا یه نگاهی به کد زیر بندازید
      <p>Paragraph 1</p> <p>Paragraph 2</p> <p>Paragraph 3</p> <p>Paragraph 4</p> <button id="calcBtn">Calculate</button> <div id="result"></div> <script> $(window).ready(function () { $('#calcBtn').click(function (e) { $('p').each(function () { $(this).css('color','rgb('+ rand(0,255) +','+ rand(0,255) +','+ rand(0,255) +')'); $('#result').append($(this).html()); // ----------------- This Code : //$('#result').append($(this)); }) }); }) </script> در اون قسمتی از کد که دارم محتوی کدهای پاراگراف رو به تگ div اضافه میکنم یه سوالی ذهن منو مشغول کرده.
      اگر همین کدی که الان هست رو اجرا کنیم، جی کوئری هربار توی حلقه رنگ تگ اصلی رو تغییر میده و یه کپی از اون پاراگراف میگیره و اضافه میکنه به div.
      ولی اگه اون تکه کدی که کامنت هست رو با اون خط جایگزین کنیم، میاد و هر بار کلا تگ پاراگراف رو برمیداره و اضافش میکنه به div. یعنی دیگه کپی ازش نمیگیره و دیگه تگ های p اون بالا باقی نمیموند.
      میخواستم ببینم آیا من درست فهمیدم ؟ یا مشکلی توی کد هست که اینجوری اجرا میشه ؟!
      باتشکر فراوان
       
    • توسط unid_user
      سلام و درود
      دوستان گرامی، می خوام با کلیک کردن روی یه تگ a هر بار سه تا از تگ های div که کلاس items رو دارن نمایش داده بشه یا به اصطلاح laod بشه.
      شبیه این دکمه توی سایت ها زیاد دیدم و لی آموزش هایی که دربارش هست برای من زیاد مناسب نیست و نتونستم درست کنم.
      با تشکر و سپاس
    • توسط unid_user
      سلام و درود
      دوستان گرامی ، می خوام یه منوی آکاردئونی ساده با جی کوئری ایجاد کنم که وقتی روی هر کدوم از آیتم های منو کلیک میکنی، زیر منوی سایر آیتم ها بسته بشه.
      <nav> <ul id="first-ul"> <li> <a>صفحه اصلی</a> </li> <li> <a>خدمات</a> <ul class="second-ul"> <li> <a>آموزش رباتیک</a> </li> <li> <a>طراحی و ساخت ربات</a> </li> </ul> </li> <li> <a>محصولات</a> <ul class="second-ul"> <li> <a>ربات مسیریاب</a> </li> <li> <a>ربات حل ماز</a> </li> </ul> </li> </ul> </nav> با تشکر و سپاس