2013-04-26 17 views
10

में कैरेट की स्थिति हमेशा समाप्त करने के लिए सेट करें मेरी प्रोजेक्ट में, मैं हमेशा टेक्स्ट के अंत में कैरेट स्थिति सेट करने की कोशिश कर रहा हूं। मुझे पता है कि यह डिफ़ॉल्ट व्यवहार है, लेकिन जब हम कुछ पाठ गतिशील रूप से जोड़ते हैं, तो कैरेट स्थिति क्रोम और फ़ायरफ़ॉक्स में प्रारंभ बिंदु में बदल जाती है (आईई ठीक है, अद्भुत)।संतोषजनक div

वैसे भी क्रोम और फ़ायरफ़ॉक्स में इसे ठीक से काम करने के लिए?

यहाँ fiddle

<div id="result" contenteditable="true"></div> 
<button class="click">click to add text</butto> 

var result = $('#result'); 
$('.click').click(function() { 
    var preHtml = result.html(); 
    result.html(preHtml + "hello"); 
    result.focus(); 
}); 

मैं setStart और setEnd इस link लेकिन कोई फायदा नहीं में उल्लेख किया है के रूप में जोड़ने की कोशिश की है।

+0

http://stackoverflow.com/questions/2871081/jquery-setting-cursor-position-in-contenteditable-div इस देखें। – rahularyansharma

+0

@rahularyansharma धन्यवाद .. हालांकि यह काम नहीं कर रहा है। (शायद मैं कुछ गलत कर रहा हूं क्योंकि मैं जेएस में गरीब हूं)। –

+0

मैं भी इसकी जांच कर रहा हूं। कृपया मुझे कुछ समय दें। – rahularyansharma

उत्तर

19

मुझे समाधान मिला here टिम डाउन के लिए धन्यवाद :)। समस्या यह है कि मैं बुला रहा था

placeCaretAtEnd($('#result')); 

placeCaretAtEnd(($('#result').get(0)); 

के बजाय के रूप में comments में jwarzech ने उल्लेख किया था।

Working Fiddle

+0

बहुत अच्छा है। थोड़ी देर के लिए यह खोज रहा था। एक कामकाजी समाधान खोजने के लिए खुशी हुई। – jsbisht

+0

वही है, यह काम करता है, धन्यवाद! – RafaSashi

+0

यह पहेली काम नहीं कर रही है यदि आप पाठ के साथ एक और नेस्टेड अवधि जोड़ते हैं, तो देखभाल का ध्यान घोंसला वाले दौर में जाएगा। –

संबंधित मुद्दे