PDA

View Full Version : آموزش: رفع مشکل Conflict در نسخه های جدید MooTools



امیـرحسین
یک شنبه 06 دی 1388, 16:16 عصر
سلام
می دونید که Selector واحد اصلی در MooTools، متد $ هست که چند تا فریم ورک دیگه از جمله jQuery و prototype هم از همین نام استفاده می کنند و این اصلی ترین علت Conflict و تداخل فریم ورکها در صفحه است.
jQuery متد noConflict و چند تا روش رو معرفی کرده و MooTools از نسخه 1.2.3، متد جدیدی از شی document با نام id ارائه داده که دیگه هیچ شباهتی به بقیه نداره.

document.id('myDiv') === $('myDiv')

این یعنی تا این تاریخ که نسخه 1.2.4 عرضه شده اگر MooTools رو گرفتید، دیگه لازم نیست از متد $ استفاده کنید و ناراحت تداخل فریم ورکها باشید.




موفق باشید
امیرحسین

امیـرحسین
یک شنبه 15 فروردین 1389, 00:26 صبح
در نسخه 1.2.4 اگر تابعی با نام $ وجود داشته باشه، این تابع ساخته نمیشه. یعنی دیگه conflict ای در کار نیست و مثلا جی کوئری درست کار خواهد کرد ولی MooTools کار نخواهد کرد. تابع document.id تابع اصلی هست و $ جایگزینه پس بهتره دیگه از $ استفاده نشه.

mostafa_shaeri_tj
پنج شنبه 19 فروردین 1389, 02:33 صبح
noconflict جواب نمیده. تا وقتی ازش استفاده نمیکنی mootools از کار می افته و وقتی ازش استفاده میکنی Jquery از کار می افته. آیا کسی به همچنین موردی برخورده؟

امیـرحسین
پنج شنبه 19 فروردین 1389, 17:10 عصر
این نمونه کد از سایت david walsh:
<p>jQuery sets this paragraph's color to red but MooTools sets the border color.</p>
<script type="text/javascript" src="jquery-1.3.js"></script>
<script type="text/javascript">
//no conflict jquery
jQuery.noConflict();
//jquery stuff
(function($) {
$('p').css('color','#ff0000');
})(jQuery);
</script>
<script type="text/javascript" src="moo1.2.js"></script>
<script type="text/javascript">
//moo stuff
window.addEvent('domready',function() {
$$('p').setStyle('border','1px solid #fc0');
});
</script>