javascript - jQuery .select() not working and how to get the node at caret? -


मुझे एक कोड में contentedable div

  फ़ंक्शन पाठ शैली (सीएसएस) {var sel, el, range, selectedText sel = window.getSelection () श्रेणी = sel.getRangeAt (0) selectedText = range.toString () श्रेणी .deleteContents () एल = document.createElement ('span') $ (एल)। सीएसएस (सीएसएस) el.innerHTML = चयनित पाठ सीमा.इंसर्टनोड (एल) श्रेणी = श्रेणी.क्लोनरेन्ज़ () श्रेणी.सेटस्टार्ट पहले (एल.फस्टबिल) श्रेणी .setEndAfter (el.firstChild) sel.removeAllRanges () sel.addRange (श्रेणी)} $ ('.bold') .on ('पर क्लिक करें', फ़ंक्शन () {textStyle ({'font-weight': 'bold'} ) () '$' ('.italic') .on ('click', function () {textStyle ({'font-style': 'italic'})}) $ ('.edit')। चयन (कार्य () {Console.log ($ (this))})  

शैली जोड़ना काम कर रहा है लेकिन अब मुझे Google ड्राइव के समान व्यवहार करना है और बटन को उपयोगकर्ता को एक प्रतिक्रिया दें। इसलिए जब मैं एक bold पाठ भाग में कैरेट डालता हूं, तो मैं बोल्ड बटन को हल्का करना चाहता हूं !!!

क्या ये jQuery के साथ किया जाता है? .select () मेरे लिए काम नहीं कर रहा है? डॉक्स का कहना है:

सम्मिलन बिंदु का स्थान केवल सेटिंग को ट्रिगर नहीं करेगा।

संपादित करें: अंत में मैं बस स्टाइल को पूर्ववत करने में सक्षम होना चाहता हूं और उसके पहले उपयोगकर्ता के लिए एक राय है!

संपादित करें 2: "अनुपलब्ध" सेमीकॉलन के बारे में।

< H2>

मैंने थोड़े किया; इस तरह:

सीएसएस

  .bold {font-weight: bold; } .italic {font-style: italic; }। हाइलाइट {पृष्ठभूमि: लाल! महत्वपूर्ण; }  

जावास्क्रिप्ट

  var obj = {ndx: null} function textStyle (सीएसएस) {var sel, el, range, selectedText sel = window.getSelection () यदि (sel.toString ()! = '') {Range = sel.getRangeAt (0) चयनित पाठ = श्रेणी.टस्टिंग () range.deleteContents () एल = document.createElement ('span') $ (el)। AddClass (सीएसएस) el.innerHTML = चयनित पाठ सीमा.निर्णातिनोड (एल) श्रेणी = श्रेणी.क्लोनरेन्ज़ () श्रेणी .setStartBefore (el.firstChild) श्रेणी .setEndAfter (el.firstChild) sel.removeAllRanges () sel.addRange (श्रेणी) $ ('Input.button।' + Css) .addClass ('हाइलाइट')}} फ़ंक्शन अनस्टाईल () {var नोड = $ ('। एडिट स्पैन') .eq (obj.ndx), text = node.text () , श्रेणी = दस्तावेज़.create रेंज () श्रेणी.सैक्टनोड (नोड [0]) var दस्तावेज़फ़्रेग्मेंट = रेंज.क्रेते कन्टेन्टेक्चुअल फ्रेगमेंट (टेक्स्ट) रेंज.इन्सर्टनोड (डॉक्यू Mentfremagment) node.remove ()} $ ('.bold') .on ('click', function () {if ($ (this) .hasClass ('highlight')) {अनस्टील () $ (this) .removeClass ('हाइट')} अन्य {टेक्स्ट स्टाइल ('बोल्ड')}} $ ('.italic') .on ('click', फ़ंक्शन) {if ($ (this) .hasClass ('highlight')) { $ ('एडिट' E.target) .closest ('span'), spanL = span.length obj.ndx = span.index () के लिए (i = 0; मैं & lt; स्पानल; I ++) {span = span [i] .className} $ ('input.button') .removeClass ('हाइलाइट') अगर (स्पैनएल) {$ ('input.Button।' + Span) .addClass ('हाइलाइट') }})  


Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -