2016-07-18 3 views
-1

В настоящее время у меня есть поле выбора, в котором есть варианты разных цветов, а также contenteditable внутри div, который будет использоваться в качестве текстового редактора. Я хочу, когда я выбираю цвет из окна, например. красный, выделенный текст внутри контекстно-зависимых изменений будет красным.onchange, чтобы изменить цвет текста внутри contenteditable

 <select id="colorChange"> 
      <option onchange="value="Black">Black</option> 
      <option value="Red">Red</option> 
      <option value="Blue">Blue</option> 
      <option value="Green">Green</option> 
      <option value="Yellow">Yellow</option> 
      <option value="Pink">Pink</option> 
     </select> 
+1

Любая проблема со мной, задающая простой вопрос? Я новичок в javascript и html вообще, что не так с вопросом на форуме, который должен был заставить людей делать это в любом случае? – cosmo

+0

Да, есть проблема, вы не показали никаких усилий, которые вы поставили до сих пор, чтобы решить вашу проблему. В настоящее время у вас нет вопросов, скорее это требование задачи. Пожалуйста, сделайте несколько [исследований] (https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand) и вернитесь, если вы застрянете. – Teemu

ответ

0

OnChange вариантов вызова метода функции и использование JQuery .css для изменения цвета текста.

function changeColor(){ 
var _color = $("#colorChange option:selected").val().toLowerCase(); 
$("#abc").css('color',_color) 
} 

Примечание: Существует опечатка в <option onchange="value="Black">Black</option>

JSFIDDLE

+0

Опечатка была изменена, и я попробую ваш код. Благодаря! – cosmo

0

Попробуйте это :)

$('#colorChange').on('change', function() { 
 
    $color = this.value 
 
    $("select option:selected").css("color", $color); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="colorChange"> 
 
      <option onchange="value="Black">Black</option> 
 
      <option value="Red">Red</option> 
 
      <option value="Blue">Blue</option> 
 
      <option value="Green">Green</option> 
 
      <option value="Yellow">Yellow</option> 
 
      <option value="Pink">Pink</option> 
 
     </select> 
 
          

0

Вот jQuery решение.

  1. onchange должно быть на select.
  2. Применить выбранный цвет к div.

$(function() { 
 
    var color = 'black'; 
 

 
    $('select').change(function() { 
 
    color = $(this).val(); 
 
    $('div').css('color', color); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="colorChange"> 
 
    <option value="Black">Black</option> 
 
    <option value="Red">Red</option> 
 
    <option value="Blue">Blue</option> 
 
    <option value="Green">Green</option> 
 
    <option value="Yellow">Yellow</option> 
 
    <option value="Pink">Pink</option> 
 
</select> 
 
<br/> 
 
<br/> 
 
<div contenteditable="true">This text color will change based on selection</div>

0

Прослушивайте событие изменения на входе выбора, захватить его значение, а затем изменить цвет вашего контейнера с помощью CSS.

$('#colorChange').change(function(){ 
     var selectedColor = this.value; 
     $('#container').css('color', selectedColor); 
    }); 

Этот метод будет работать при использовании названия цветов, поддерживаемые всеми браузерами (http://www.w3schools.com/cssref/css_colors.asp), если вы хотите пользовательские цвета, вам нужно будет либо установить значение параметров в выберите вход на значение HEX (#) для цвет требуется или передать selectedColour через оператор switch, чтобы определить цветовой код.

+0

Это лишь частичный ответ на вопрос. Вопрос: [Как получить] "__selected text__ внутри contenteditable [изменить] на красный." – Teemu

+0

$ ('# container'). Css ('color', selectedColor); Эта часть обратного звонка делает то, что он спрашивает? –

+0

Нет, это не так. '# container' не имеет ничего общего с __selected text block__ в редактируемом' div'. Похоже, что все ответы страдают более или менее от одной и той же проблемы, т. Е. Игнорируют часть «выбранного текста». – Teemu

0

Javascript версия. Я действительно надеюсь, что я не буду делать домашнее задание.

document.getElementById('colorChange').addEventListener('change',function(event){ 
    var val = event.target.value; 
    var div = document.getElementById('editableDiv'); 
    div.style.color = val; 
}); 
Смежные вопросы