تمام سوالات سوالات بدون پاسخ سوال بپرسید

با سلام، دو سری دکمه در دو div تعریف کرده ام گفتم هرگاه روی دکمه های div اول کلیک شد آن دکمه remove شود. و هرگاه روی دکمه های div دوم کلیک شدن آن دکمه به دکمه های div اول append (اضافه) شود. اضافه هم می شود اما دکمه اضافه شده به div اول از div دوم حذف می شود! و زمانی که به div اول اضافه می شود دیگر با کلیک حذف (remove) نمیشود!

مشکل این کد کجاست؟

<script src="jquery-1.11.1.m in.js"></script> <meta charset="utf-8">
<div id="top_cats_list" style="float: right">
    <label for="cat">لیست دسته ها:</label>
    <button class="top_cat" type="button">X cate1</button>
    <button class="top_cat" type="button">X cate2</button>
    <button class="top_cat" type="button">X cate3</button>

</div>

<div id="feed_cats_list">
    <p>لیست دسته بندی ها:</p>
    <button class="feed_cat" type="button">cat1</button>
    <button class="feed_cat" type="button">cat1</button>
    <button class="feed_cat" type="button">cat1</button>
    <button class="feed_cat" type="button">cat1</button>
</div>

<script>

    $(document).ready(function(){

        /*remove category button from top section*/
        $('.top_cat').click(function(){
            $(this).remove()
        });

        /*add category button to top section*/
        $('.feed_cat').click(function(){
            var n = $(this);
            n.attr("class","top_cat");
            $('#top_cats_list').append(n)
        });

    })

</script>
2 پاسخ

در قسمت binding رويداد به اين صورت عمل كنيد:

ویرایش:

<script>

    $(document).ready(function(){

        /*remove category button from top section*/
        $(document).on('click','.top_cat',function(){
            $(this).remove()
        });

        /*add category button to top section*/
        $(document).on('click','.feed_cat',function(){
            var n = $(this);
            n.attr("class","top_cat");
            $('#top_cats_list').append(n)
        });

    })

</script>

داخل تابع دستوری که معرفی کردین من عمل append را انجام دادم اما هیچ تفاوتی نکرد. امکان دارد خودتان این موضوع را تست کنید؟ و کدکامل را قرار دهین.

(09 ژوئیه '14, 19:00) soltani

خیلی ممنون. اما هنوز مشکل کامل حل نشده. زمانی که از کلاس feed_cat دکمه ای کلیک میشه نباید remove بشه اما این اتفاق می افته. مشکلی که حل شد اینه که بعد از کلیک بر روی دکمه های div دوم دکمه به div اول منتقل میشه و با کلیک بر روی اون عمل حذف صورت میگره که این عمل قبلا اتفاق نمی افتاد.

لطفا راهنمایی کنید.

(09 ژوئیه '14, 22:28) soltani

remove نمیشه، فقط کلاس اون عوض میشه.

(09 ژوئیه '14, 23:05) omid

نمیخوام جابجا بشه. میخوام یک کپی ازش داشته باشم. یعنی روی هر دکمه از کلاس feed_cats_list کلیک شد بیاد یک کپی از دکمه تولید کنه و به تگ div اولی اضافه کنه البته نام کلاسش هم به top_cats_list تغییر کنه؟

(10 ژوئیه '14, 00:22) soltani

با کمک دوستمون و تغییر کد مشکلم حل شد:

/*add category button to top section*/
$(document).on('click','.feed_cat',function(){
    $('#top_cats_list').append('<button type="button" class="top_cat">'+$(this).text()+'</button>');
});
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×88
  • پرسیده شده: 09 ژوئیه '14, 17:01
  • بازدید: 1,886 بار
  • آخرین بروزرسانی: 10 ژوئیه '14, 00:36

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها