2015-04-30 11 views
5

पर टेक्स्ट फीड आउट करें यह एक व्यक्तिगत कला प्रोजेक्ट के लिए है। जो मैं मूल रूप से करना चाहता हूं वह एक खाली वेब पेज बना सकता है जहां कोई उपयोगकर्ता टेक्स्ट (जैसे टेक्स्ट-एडिटर) टाइप कर सकता है, लेकिन टेक्स्ट टाइप होने पर फीका हो जाता है।टाइप

फीका हुआ, मैं नहीं चाहता कि उपयोगकर्ता को जो पाठ लिखा था उसे देखने की क्षमता हो। इसलिए, मैं पृष्ठभूमि रंग से मेल खाने के लिए फ़ॉन्ट रंग को बस बदलना नहीं चाहता क्योंकि उपयोगकर्ता फिर से टेक्स्ट का चयन कर सकता है।

अभी तक, मैंने एक टेक्स्टरेरा बनाया है कि कीप पर टेक्स्ट इनपुट स्टोर करेगा, जो एक अलग div में दिखाएगा। मैंने जावास्क्रिप्ट में निर्दिष्ट किया है कि जब दर्ज टेक्स्ट एक निश्चित लंबाई तक पहुंच गया है: div बाहर फीका होगा, टेक्स्ट साफ़ करेगा, और वर्तमान टेक्स्ट इनपुट दिखाने के लिए फिर से दिखाएगा। समस्या यह है कि कंसोल के अनुसार, मैं div के मान को साफ़ नहीं कर सकता। इसका कोई मतलब भी है क्या? http://jsfiddle.net/anelec/k40p72xk/5/

एचटीएमएल:

<textarea type='text' id='myinput'></textarea> 
<div><span id="fade"></span></div> 

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

//on keyup store text input into a variable "text" 
    $("#myinput").keyup(function(event) {  
    var text = $("#myinput").val(); 
    console.log("event working"); 
    console.log(text); 

    //show values of "text" variable in id "fade" 
    $("#fade").text(this.value); 
    var fade = $("#myinput").val(); 

    //function to clear text value of id "fade" 
    function cleartext(){ 
    document.getElementById("#fade").value=""; 
    } 

    //clear text value of id "fade" after 15 letters 
    if (fade.length >=15) { 
    $("#fade").fadeOut(200); 
    cleartext(); 
    } 

    //show the incoming text input somehow 
    if (fade.length <=15) { 
    $("#fade").fadeIn("fast"); 
    } 
    }); 

कृपया मुझे बताएं कि वहाँ एक बेहतर तरीका है कि मैं इस दृष्टिकोण कर सकते हैं करते हैं

यहाँ एक बेला है।

+0

कारण आप स्पष्ट करने में सक्षम नहीं हैं div का मान इसलिए है क्योंकि आप document.getElementById ("# fade") का प्रयास कर रहे हैं। value = "" और #fade के नाम से कोई तत्व नहीं है। आप सामान्य जावास्क्रिप्ट के साथ jquery मिश्रण करने की कोशिश कर रहे हैं। $ ("# फीका") आज़माएं। पाठ (""); बजाय। – Sushil

+0

तो यह आपके लिए कैसे चला गया ?? आप हमें कभी बताने के लिए वापस नहीं लौटे, इसलिए मुझे लगता है कि हमारे उत्तरों में से कोई भी वह नहीं है जिसे आप ढूंढ रहे थे? हमें बताएं, और हम आपकी मदद करने में संकोच नहीं करेंगे। – Fata1Err0r

उत्तर

0

यदि मैं आपको सही ढंग से समझता हूं, तो यह काम करना चाहिए। आप मूल्य के बजाय आंतरिक HTML का उपयोग करना चाहेंगे।

बदलने का प्रयास करें:

function cleartext(){ 
    document.getElementById("#fade").value=""; 
    } 
इस के लिए

:

function cleartext(){ 
    document.getElementById("#fade").innerHTML=""; 
    } 

आप गैर इनपुट फ़ील्ड के लिए इनपुट फ़ील्ड के लिए value, और innerHTML का उपयोग करें।


विकल्प 1:

$("#myinput").keyup(function(event) {  

     var text = $("#myinput").val(); 
     console.log("event working"); 
     console.log(text); 

     $("#fade").text(this.value); 
     var fade = $("#myinput").val(); 


function cleartext(){ 
     document.getElementById("fade").innerHTML=""; 

     // you use value this time because it's input field 
     document.getElementById("myinput").value = ""; 
} 


    if (fade.length >=15) { 
     $("#fade").fadeOut(200); 
     cleartext(); 
    } 


    if (fade.length <=15) { 
      $("#fade").fadeIn("slow"); 
    } 



}); 

विकल्प 2: इस उदाहरण से एलेक्स CASSEDY - अगर इसके The Better उत्तर, उसे क्रेडिट और मेरा नहीं दे, मैं बस एक निर्धारित ऐसा करने पर यह काम करता है। इस तरह

$("#myinput").keyup(function(event) {  

     var text = $("#myinput").val(); 
     console.log("event working"); 
     console.log(text); 

     $("#fade").text(this.value); 
     var fade = $("#myinput").val();  

    // Keep track of how many sets of 15 chars there are 
    var accum = 0; 

    // If the length is divisible by 15 
    if (text.length % 15 == 0) { 
     $("#fade").fadeOut(200, function() { 
      accum ++; 
      // $(this) refers to $("#fade") 
      $(this).val(''); // set the value to an empty string 
     }); 
    } else { 
     $("#fade").fadeIn('fast'); 

    } 

    // Use the substring method to get every 15 characters to display in #fade 
    var next = text.substring(fade.length - 15); 

    $("#fade").text(next); 

}); 
+0

इससे बहुत मदद मिली!मान साफ़ हो जाता है, लेकिन अब मैं आने वाले पाठ को फिर से कैसे दिखूं? – Anelec

+0

देरी दोस्त के बारे में क्षमा करें। मैं काम पर बैठा हूं, और आपके पास जल्दी वापस आने का मौका नहीं था। अगर आप यही पूरा करना चाहते हैं तो मुझे बताएं। यदि नहीं, तो हम इसे फिर से हल कर लेंगे, लेकिन केवल यह स्पष्ट करें कि आप इसे कैसे संचालित करना चाहते हैं। यह उदाहरण पूरी तरह से आपके ओपी में टाइप किए गए कार्यों पर आधारित है। – Fata1Err0r

1

कोशिश कुछ:

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

// Keep track of how many sets of 15 chars there are 
var accum = 0; 

// If the length is divisible by 15 
if (text.length % 15 == 0) { 
    $("#fade").fadeOut(200, function() { 
     accum ++; 
     // $(this) refers to $("#fade") 
     $(this).val(''); // set the value to an empty string 
    }); 
} else { 
    $("#fade").fadeIn('fast'); 
} 

// Use the substring method to get every 15 characters to display in #fade 
var start = accum * 15, 
    end = (accum + 1) * 15, 
    next = text.substring(start, end); 

$("#fade").text(next); 
+0

हम्म, मैंने इसे जोड़ा, लेकिन ऐसा लगता है जैसे यह केवल टेक्स्ट झपकी बना रहा है? – Anelec

+0

नीचे, 'स्टार्ट' और' एंड' वेरिएबल्स को हटाएं, फिर 'अगला' को इस पर बदलें: 'var next = text.substring (fade.length - 15);' यह आपकी अपेक्षा के अनुसार काम करेगा। मैंने इसे अपने उत्तर पर अपडेट कर दिया है, लेकिन अगर आपको एलेक्स का जवाब सबसे अच्छा लगता है, तो उसे इसके लिए श्रेय दें। – Fata1Err0r

+0

हे! क्षमा करें, मैं पिछले कुछ दिनों में वास्तव में व्यस्त रहा हूं। पीछा करने के लिए बहुत बहुत धन्यवाद, मैं जो भी मदद मिली है उस पर विश्वास नहीं कर सकता! मैं वास्तव में इसकी प्रशंसा करता हूँ। आप से दोनों जवाब और एलेक्स कैसीडी जो चाहते हैं उसके करीब आ रहे हैं। मुझे लगता है कि मुझे वास्तव में यह स्पष्ट करना चाहिए कि मैं सिस्टम को काम करने के लिए कैसे कल्पना करता हूं: एक खाली सफेद पृष्ठ की कल्पना करें जहां एक ब्लिंकिंग कर्सर है जहां कोई उपयोगकर्ता किसी भी बिंदु पर टाइप कर सकता है, देखें कि वे क्या टाइप कर रहे हैं और 2 सेकंड के बाद, उनके प्रकार के फीड। कर्सर हालांकि, उस स्थिति पर छोड़ देता है जहां वे अंतिम प्रकार और झपकी जारी रखते हैं। – Anelec

0

यह निकटतम मैं मिल गया है है

$("#myinput").keyup(function(event) {  
var text = $("#myinput").val(); 
console.log("event working"); 
console.log(text); 

//show values of "text" variable in id "fade" 
$("#fade").text(this.value); 
var fade = $("#myinput").val(); 


if (text.length >=5) { 
    $("#fade").fadeTo(600,0); 
     $(this).val(""); 
    $("#fade").fadeTo(20,1); 
} 

}); 
संबंधित मुद्दे