2014-03-29 40 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语句可能会更简单,更容易维护。 –