ورود

View Full Version : دادن focus به یک div



bade saba
جمعه 26 مهر 1392, 20:04 عصر
سلام
دوستان من یک ContentEditable div دارم که می خوام به طور dynamic یک div رو بهش اضافه کنم و focus رو به اون divای که به طور dynamic اضافه کردم بدم به طوری که نوشته ها درون اون div نوشته بشه اما با .focus() انجام نمیشه. می خوام بدونم که چنین چیزی امکان پذیر هست یا نه و اگه بله چه طوری؟
با تشکر

tmwebseo
شنبه 27 مهر 1392, 10:05 صبح
از دستور parent و child در جی کوئری استفاده کنید

bade saba
شنبه 27 مهر 1392, 10:30 صبح
میشه توضیح بیشتری بدید و اگر ممکنه یه قطعه کد sample بزارید؟ من درست متوجه منظورتون نشدم

Javidhb
شنبه 27 مهر 1392, 12:24 عصر
اینو من قبلا استفاده کردم... مال خودم نیست.. منبعش رو هم یادم نمیاد! ولی مهم اینه که کار میکنه:چشمک:

با مرورگرهای جدید، سازگاره...



<div id="test" contenteditable="true">5464646464646</div>




(function(){
var newDiv = '<div id="newDiv" style="color:red;">affffdd</div>';

//اضافه کردن دیو جدید یا هر روش دیگه ای
document.getElementById('test').innerHTML += newDiv;

// بردن موس توی دیو جدید
var el = document.getElementById("test"); //دیو اصلی
var targetDiv = el.childNodes[1]; //دیو جدید که توی دیو اصل قرار داره
var range = document.createRange(); //sakhte RANGE => امکان انتخاب متن از چند المنت
var sel = window.getSelection(); //sakhte SELECTION => برای در اختیار داشتن متنی که کاربر انتخاب میکنه


range.setStart(targetDiv, 1); //محل ابتدای رنج .. از کدوم نود => 1 یعنی آخر متن اون نود
range.collapse(true); //محل انتهای رنج همون محل ابتداش باشه!
sel.removeAllRanges(); //از اسمش معلمومه - اگه قبلا کاربر متنی رو انتخاب کرده باشه اونو حذف میکنه
sel.addRange(range); //یک سلکت جدید با رنجی که درست کردیم ، ایجاد میکنیم
el.focus(); //ایجاد فوکوس
})();