#javascript
#javascript
Вопрос:
Всем добрый день, у меня возникли проблемы с активацией этой функции: function clickMe(){return this.color="red"}
, внутри объекта. это должно быть вызвано кнопкой, вот код:
script>
var btn = document.querySelector("#btn");
var txt = document.querySelector("#txt");
btn.addEventListener("click",activeNewColor)
var objCss ={fontsize:"40px",
color:"pink",
click: function clickMe(){return this.color="red"}
}
let colorRed=objCss.click.bind(objCss);
var activeNewColor= () =>{
return colorRed()
}
//activeNewColor()
Object.assign(txt.style, objCss);
</script>
Комментарии:
1. Такой странный код… Чего вы хотите достичь? Если вы нажмете кнопку, то
#btn
и#txt
должны изменить цвет на красный? Или только кнопка? Или только текст?2. да, извините за беспорядок, только #txt…
3. Почему бы не сделать это —>
btn.addEventListener('click', () => txt.style.color = 'red');
? То, что вы пытаетесь сделать, может быть сделано с помощью трех строк кода.4. Почему бы не использовать библиотеку javascript или плагин jQuery и просто использовать предопределенные функции вместо ваших функций? Вы можете определять функции в прослушивателях событий
Ответ №1:
Нравится это?
function buttonClicked() {
const txt = document.getElementById('txt');
txt.style.color = 'red';
}
button {
color: green;
}
textarea {
width: 100%;
height: 100px;
font-size: 40px;
color: pink;
}
<div><button id="btn" onclick="buttonClicked()">Click me</button></div>
<textarea id="txt">Example text</textarea>
Ответ №2:
Вы можете приписать стиль разным классам и использовать classList.toggle
для удаления / добавления класса из элемента, например, так :
var txt = document.querySelector("#txt");
function changeColor() {
txt.classList.toggle('pink');
txt.classList.toggle('red');
}
#txt {
font-size: 14px;
}
#txt.pink {
color: pink;
}
#txt.red {
color: red;
}
<button id="btn" onclick="changeColor()">Change text color</button>
<span id="txt" class="pink">text</span>