# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن > MooTools >  انتشار اولین نسخه بتا از MooTools 1.3

## امیـرحسین

طبق خبری از وبلاگ MooTools، نسخه آزمایشی MooTools 1.3 آماده تست است.

طبق این خبر، مهمترین تغییرات نسخه جدید به شرح زیر است:

MooTools یه سری تابع Global تعریف می کنه که برای شناسایی راحتتر، همشون با علامت $ شروع میشن. مثل empty$ و type$ و try$ در بخش Core دسته بندی شده بودند. این توابع به کل برداشته شدند، اونهایی که لازم بودند، با تغییر کد و تغییر نام و تغییر مشخصات بوجود اومده اند. مثلا تابع type$ یه typeOf تغییر نام پیدا کرده یا define$ به nil تبدیل شده. توابع Global ای هم که در واقع Global نبودند به property تبدیل شدند مثل Object.each بجای each$ و غیره.


تابعی به نام from به همه اشیاء Native اضافه شده که کارش اینه که به هر شی ای متصل بشه، پارامترش رو به همون نوع تبدیل می کنه. مثلا شبیه کد زیر:
Array.from(5)  ==>  new Array(5)
String.from(['a', 5, 'b'])  ==>  new String('a, 5 , b')


تیم MooTools خیلی وقته که دارند قول یک Selector جدید به نام Slick رو میدهند که خیلی خوب و سریعه. نسخه اولیه این Selector در MooTools 1.3 beta 1 قرار گرفته و آماده استفاده است. از خصوصیات این Selector به بندهای زیر اشاره شده:
این Selector کاملا توسط تیم MooTools ساخته شده و در واقع وطنی محسوب میشه!  :چشمک: این Selector نمونه تکامل یافته و حرفه ای Selector فعلی MooTools هست.توسط کدهای استاندارد جاواسکریپت نوشته شده و برپایه MooTools نیست یعنی میشه بصورت Standalone همه جا، حتی بدون MooTools ازش استفاده کرد.Slick حداقل 50% سریعتر از Selector فعلی در نسخه 1.2 کار می کنه یعنی خیلی سریعه.Slick قسم خورده که از هر Selectorای که از مخیله ما رد بشه، پشتیبانی کنه یعنی انتخابگر CSS3 و CSS2 اینا نداره. همه رو میشناسه.کاملا قابل توسعه و شخصی سازی هست بصورتیکه میتونیم به سادگی Selectorهای خودمون رو بخش اضافه کنیم.توسط Slick ما انتخابگرهای معکوس میتونیم داشته باشیم. یعنی انتخابگر زیر
a ! body { color: blue }
بجای
body a { color: blue }
که من کاربرد دقیقش رو کشف نکردم.امکان تعیین انتخابگر CSS بصورت متن و دریافت Object که قابلیت خیلی جالبیه. برای نمونه، در نسخه جدید، دو تا روش زیر یک نتیجه دارند:
new Element("input", {"id": "someID", "class": "someClass1 someClass2", "disabled": true});
new Element("input#someID.someClass1.someClass2[disabled=true]");و اینکه Slick از XML هم پشتیبانی می کنه.


نسخه آزمایشی از لینک روبرو قابل دریافته: github.com :: MooTools 1.3 Beta 1
و آموزش و توضیحات کامل هم در اینجا قابل مشاهده است: github.com :: MooTools 1.3 Beta 1 Docs




منبع

----------


## امیـرحسین

> توسط Slick ما انتخابگرهای معکوس میتونیم داشته باشیم. یعنی انتخابگر زیر
> a ! body { color: blue }
> بجای
> body a { color: blue }
> که من کاربرد دقیقش رو کشف نکردم.


یه کاربرد خیلی خوب واسش پیدا کردم. به این دو تا مثال دقت کنید.

فرض کنید به SPAN دسترسی داریم و میخوایم چهارمین DIV از بالا رو داشته باشیم:
<div>
	<div>
		<div class="test">
			<div> <!-- Target -->
				<div class="test">
					<div class="test">
						<div class="test">
							<span id="WE_ARE_HERE">
برای این کار باید دستور زیر استفاده بشه:
var secondTest = document.id('WE_ARE_HERE').getParent().getParent()  .getParent().getParent();
ولی با قابلیت جدید، چیزی شبیه دستور زیر کفایت می کنه:
var secondTest = document.id('start').getParent('div.test !> div.test !> div.test !> div');

و یا میخوایم به بالاترین LI بالادستی بریم:
<div>
	<ul>
		<li> <!-- Target -->
			<ul>
				<li>
					<span id="start">
که اینجوری باید عمل کنیم:
var firstLi = document.id('start').getParent('ul').getParent('li  ');
که توسط Slick می تونیم شبیه زیر تعداد توابع رو کمتر کنیم:
var firstLi = document.id('start').getParent('li ! ul ! li');

----------

