|
با سلام، دو سری دکمه در دو 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>
در قسمت 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 را انجام دادم اما هیچ تفاوتی نکرد. امکان دارد خودتان این موضوع را تست کنید؟ و کدکامل را قرار دهین.
خیلی ممنون. اما هنوز مشکل کامل حل نشده. زمانی که از کلاس feed_cat دکمه ای کلیک میشه نباید remove بشه اما این اتفاق می افته. مشکلی که حل شد اینه که بعد از کلیک بر روی دکمه های div دوم دکمه به div اول منتقل میشه و با کلیک بر روی اون عمل حذف صورت میگره که این عمل قبلا اتفاق نمی افتاد.
لطفا راهنمایی کنید.
remove نمیشه، فقط کلاس اون عوض میشه.
نمیخوام جابجا بشه. میخوام یک کپی ازش داشته باشم. یعنی روی هر دکمه از کلاس feed_cats_list کلیک شد بیاد یک کپی از دکمه تولید کنه و به تگ div اولی اضافه کنه البته نام کلاسش هم به top_cats_list تغییر کنه؟
با کمک دوستمون و تغییر کد مشکلم حل شد:
/*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>');
});