2014-03-29 38 views
1

我有以下代碼鏈接到我的textarea(鏈接:http://codepen.io/anon/pen/zgxFf/)。唯一的問題是,當用戶類型刪除我想圖像消失。我知道我需要JQuery來做類似$('#'pic').hide();的事情,我需要添加到$('#output').css,因爲我不僅要使用CSS,還要使用JQuery。 我不確定要添加什麼或在哪裏。允許textarea不僅修改CSS,還修改JQuery?

var value = document.getElementById("userinput").value; 
     var unspeakables = ['shout', 'message', 'delete'], 
     formatting = { 
      "shout" : { 
       "color" : "red" 
      }, 
      "message" : { 
       "color" : "black" 
      } 
      "delete" : { 
      // JQuery... 
     } 
     }; 
    value = value.replace(new RegExp('\\b' + unspeakables.join('\\b|\\b') + '\\b','gi'), 
     function(matchedWord) { 
      $('#output').css(formatting[matchedWord.toLowerCase()] || {}); 
      return ''; 
     } 
    ); 
    $('#output').html(value); 
    } 

謝謝。

回答

0

除非我誤解你想要做什麼,這應該是越簡單

$('#userinput').click(function() { 
    if ($('#userinput').val().match(/\bdelete\b/) { // or other regexp 
     $('#pic').hide(); 
    } 
    // insert tests for 'shout', 'message', etc here 
} 
+0

我似乎無法得到它與我上面的代碼工作。 您發佈的代碼正是我之前嘗試做的,但我想將所有內容都放在_unspeakables_數組中。並使它與CSS的_formatting_一樣。 (只有這一次,我想隱藏圖片,我認爲JQuery會做到這一點)。 – WalkOfLife

+0

我覺得你已經把自己描繪成一個角落了:你已經設置了「格式化」對象,只能修改$('#output')的CSS;在這種情況下,您需要修改$('#pic')。你將不得不添加一些條件來告訴你的代碼它應該修改哪個元素。可以做類似'{「shout」:... {「domElement」:「#output」,「css」:{「color」:「red」}} ...'然後讓你的替換函數使用domElement我想,看看哪個節點要修改而不是硬編碼。 –

+1

但是,一系列的if/else語句可能會更簡單,更容易維護。 –