سلام. این اسکریپت تا اینجا بخوبی کار میکنه:
// Go to Comment.
$(".comment-teaser .comment").click(function () {
var share = $(this).find(".share");
var item = $(this).find(".share .dropdown-item");
share.toggleClass("dropen");
item.html('<i class="f-a fa-external"></i> برو به این کامنت');
item.click(function () {
window.location.href = item.attr("href");
});
});
مشکل اینجا شروع میشه، اینو به کدهای بالا اضافه کردم برای حذف همهی کلاسهای dropen:
$(".comment-teaser .dropen").removeClass("dropen");
اینطوری هم تست کردم نشد:
$(".comment-teaser").find(".dropen").removeClass("dropen");
راههای دیگه هم نشد، اما به اینصورت اوکیه:
if($(".comment-teaser .share").hasClass("dropen")) {
setTimeout(function(){
$(".comment-teaser .dropen").removeClass("dropen");
}, 10);
};
ولی احساس میکنم با setTimeout دارم ماستمالی میکنم، میخوام مطمئن بشم راهحل بهتری وجود داره یا نه؟
پ.ن: من جیکوئری رو تا همینجاهاش بلدم بیشتر از این دیگه همیشه ماستمالی میکردم و امیدوارم که عذاب وجدان ماستمالی نگیرتم!
سلام به وسیله Attribute هم می تونید تست کنید.
$(".comment-teaser .dropen").attr("class", "comment-teaser");
@amirsharifi سلام. نمیتونم کلاسها رو override کنم چون کامنتها و استایلهای متفاوتی داریم.
البته مشکل خیلی جدی نیست چون کارم راه افتاده فقط میخوام ببینم راه بهتری هست یا همینو درست رفتم چون قسمتهای دیگه هم به همین سبک setTimeout ماستمالی کردم
درود @GHM.
من فکر میکنم شما تو select کردن اشتباه دارید.
اگر منظور شما اینه که المانی/المانهایی که داری کلاسهای dropen یا comment-teaser هستند را انتخاب کند و سپس روی آنها کاری کن باید به این ترتیب عمل کنید:
$(".comment-teaser, .dropen")
و اگر منظور شما اینه که المان/المانهایی که هم کلاس dropen و هم کلاس comment-teaser را دارند، باید به این ترتیب انتخاب کنید:
$(".comment-teaser.dropen")
به "و" "یا" "," "" توجه کنید.
@sm.faramarzirad
اگر در گفتگویی کد یا اروری میفرستید لطفا نکته زیر رو دقت کنید
چون در صورت رعایت نکردن مبجور به حذف پاسخها و گفتگوها میشیم .
لطفا قبل از ارسال گفتگو، بر روی دکمه پیشنمایش کلیک کنید. تا از درست بودن نکته ارسال کد و ارور مطمئن شوید.
@sm.faramarzirad
@amirsharifi
@hesammousavi
ممنون از همه دوستان مسئله رو به شیوه دیگهای حل کردم(سلکتور قسمتی دیگه رو تغییر دادم). به یک نتیجهای رسیدم که بعضی چالشها رو خودمون بزرگ میکنیم و الکی درگیرش میشیم درصورتیکه با یک "نگاه سادهتر" داستان عوض میشه.
// Go to Comment.
$(".comment-teaser .comment").click(function () {
$(this).find(".share .dropdown-item").html('<i class="f-a fa-external"></i> برو به این مطلب');
$(this).find(".share .dropdown-btn").trigger("click");
});
@hesammousavi
بخش ارسال پاسخ مشکل داره.
من کدها رو بین ۳تا پیچ(`) میذارم.
قبل ارسال پیشنمایش رو هم میزنم.
ولی کدها و متن رو اون جوری که میخوام نمایش نمیده.
وقتی متن راستبهچپه، کدها درست نیستن، وقتی چپبهراسته، نوشتههای فارسی اشتباه میشه.
@sm.faramarzirad
این همه آدم دارن درست انجامش میدن پس مشکلی توش نیست
وارید لینک زیر بشید و شماره 9 رو مطالعه کنید
https://roocket.ir/faq
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟