PDA

View Full Version : تداخل (conflict) بین jQuery و MooTools



atoofy
دوشنبه 04 آبان 1388, 21:25 عصر
سلام. من در صفحه سایت از دو نوع پلاگین استفاده می کنم که یکیش بر مبنای جی کوئری و دیگری بر مبنای موتولز هست. اون پلاگین ِ موتولز تا زمانی که فایل جی کوئری در صفحه فراخوانی نشده باشه به خوبی کار می کنه اما وقتی جی کوئری وارد صفحه میشه ، تداخل ( conflict ) ایجاد میشه و اون پلاگین موتولز کار نمی کنه.
من پراکنده می دونم که باید از
jQuery.noConflict(); استفاده بشه اما چگونگیش را بخصوص در مورد کد خاصی که دارم ازش استفاده می کنم نمی دونم.کد ِ استفاده کننده از جی کوئری این هست :


var jkpanel={
controltext: 'panel',
$mainpanel: null, contentdivheight: 0,

openclose:function($, speed){
this.$mainpanel.stop() //stop any animation
if (this.$mainpanel.attr('openstate')=='closed')
this.$mainpanel.animate({top: 0}, speed).attr({openstate: 'open'})
else
this.$mainpanel.animate({top: -this.contentdivheight+'px'}, speed).attr({openstate: 'closed'})
},

init:function(file, height, speed){
jQuery(document).ready(function($){
jkpanel.$mainpanel=$('<div id="dropdownpanel"><div class="contentdiv"></div><div class="control">'+jkpanel.controltext+'</div></div>').prependTo('body')
var $contentdiv=jkpanel.$mainpanel.find('.contentdiv')
var $controldiv=jkpanel.$mainpanel.find('.control').cs s({cursor: 'wait'})
$contentdiv.load(file, '', function($){
var heightattr=isNaN(parseInt(height))? 'auto' : parseInt(height)+'px'
$contentdiv.css({height: heightattr})
jkpanel.contentdivheight=parseInt($contentdiv.get( 0).offsetHeight)
jkpanel.$mainpanel.css({top:-jkpanel.contentdivheight+'px', visibility:'visible'}).attr('openstate', 'closed')
$controldiv.css({cursor:'hand', cursor:'pointer'})
})
jkpanel.$mainpanel.click(function(){jkpanel.opencl ose($, speed)})
})
}
}

//Initialize script: jkpanel.init('path_to_content_file', 'height of content DIV in px', animation_duration)
jkpanel.init('index.htm', '80px', 1000)میشه راهنمایی کنید که کد نهایی با استفاده از
jQuery.noConflict(); چی میشه؟

ممنون

maysamscript
دوشنبه 04 آبان 1388, 23:29 عصر
پیشنهاد میکنم فقط از jquery استفاده کنید. چه کاری میخواهید با موتولز انجام بدید که پلاگین جی کوئریش وجود نداره؟

atoofy
سه شنبه 05 آبان 1388, 00:15 صبح
راستش من دارم اینو در یک قالب جوملا استفاده می کنم و اون موتولز هم یک فوتو اسلایدر هست که یه اکستنشن برای جوملاست.

بنابراین تنها مشکل من داشتن کد نهایی این اسکریپت جی کوئری در تلفیق با jQuery.noConflict(); هست.

atoofy
پنج شنبه 07 آبان 1388, 20:07 عصر
ببخشید از دوستان کسی نبود بتونه مشکل ما رو حل کنه؟

Exception
جمعه 08 آبان 1388, 02:38 صبح
اینجوری بنویس:

jQuery.noConflict();
(function($){
//کد خودت رو اینجا قرار بده
})(jQuery);

atoofy
جمعه 08 آبان 1388, 03:00 صبح
اینجوری بنویس:

jQuery.noConflict();
(function($){
//کد خودت رو اینجا قرار بده
})(jQuery);

سلام.
خیلی ممنون. من این کارو انجام دادم و توی دو تا مرورگر ِ IE و Google Chrome هم درست جواب داد اما تو فایرفاکس نه. نمیشه یه جوری اینو آخر خود فایل کتابخانه ی جی کوئری فراخوانی کرد شاید مشکل حل بشه؟

اگر لینک هم خواستید بگید تا براتون بفرستم.

ممنون