এটি @ ফ্লাইটের উপর ভিত্তি করে একটি উত্তর উত্তর যুক্তির , তবে কিছুটা সাধারণীকরণ হয়েছে
যদি উপাদানগুলি সরানোর
আগে / এর আগে / সংযোজন করা হয় তবে
=> কোনও ক্লোনিংয়ের প্রয়োজন নেই>>
ইভেন্টগুলি রাখা হয় না
দুটি ঘটনা ঘটতে পারে
- একটি টার্গেটের কিছু "
.prev()
আইওস" থাকে => আমরা অন্য লক্ষ্যটিকে .after()
রাখতে পারি।
- একটি লক্ষ্য হ'ল এর প্রথম সন্তান
.parent()
=> আমরা .prepend()
অন্য লক্ষ্যটি পিতামাতার কাছে করতে পারি ।
কোড
এই কোডটি আরও ছোট করা যেতে পারে তবে আমি পঠনযোগ্যতার জন্য এটিকে এভাবে রেখেছি। মনে রাখবেন যে পিতামাতাদের পূর্বনির্ধারিত করা (যদি প্রয়োজন হয়) এবং পূর্ববর্তী উপাদানগুলি বাধ্যতামূলক।
$(function(){
var $one = $("#one");
var $two = $("#two");
var $onePrev = $one.prev();
if( $onePrev.length < 1 ) var $oneParent = $one.parent();
var $twoPrev = $two.prev();
if( $twoPrev.length < 1 ) var $twoParent = $two.parent();
if( $onePrev.length > 0 ) $onePrev.after( $two );
else $oneParent.prepend( $two );
if( $twoPrev.length > 0 ) $twoPrev.after( $one );
else $twoParent.prepend( $one );
});
... একটি ক্রিয়াকলাপে অভ্যন্তরীণ কোড মোড়ানো নির্দ্বিধায় :)
উদাহরণ ফ্রিডલમાં ইভেন্ট সংরক্ষণের জন্য অতিরিক্ত ক্লিক ইভেন্টগুলি সংযুক্ত রয়েছে ...
উদাহরণস্বরূপ ফিডল: https://jsfiddle.net/ewroodqa/
... বিভিন্ন ক্ষেত্রে কাজ করবে - এমন একটি যেমন:
<div>
<div id="one">ONE</div>
</div>
<div>Something in the middle</div>
<div>
<div></div>
<div id="two">TWO</div>
</div>