Javascript 可能是;“听”;为一个DOM元素创建一个CSS值,并告诉另一个DOM元素匹配它?
我试图破解Drupal的colorpicker模块,这样当我的用户拖动它挑选颜色时,他就能实时看到网站上的颜色变化 现在,colorpicker的js实时更改picker小部件的颜色 我想破解js,以便picker小部件和特定DOM元素的颜色立即改变背景颜色 有没有一种方法可以让我编写一些代码“侦听”colorpicker输入的背景色设置,然后更改输入的背景色 以下是Drupal将colorpicker小部件中的设置应用于其输入的代码:Javascript 可能是;“听”;为一个DOM元素创建一个CSS值,并告诉另一个DOM元素匹配它?,javascript,css,drupal,Javascript,Css,Drupal,我试图破解Drupal的colorpicker模块,这样当我的用户拖动它挑选颜色时,他就能实时看到网站上的颜色变化 现在,colorpicker的js实时更改picker小部件的颜色 我想破解js,以便picker小部件和特定DOM元素的颜色立即改变背景颜色 有没有一种方法可以让我编写一些代码“侦听”colorpicker输入的背景色设置,然后更改输入的背景色 以下是Drupal将colorpicker小部件中的设置应用于其输入的代码: Drupal.behaviors.colorpicker
Drupal.behaviors.colorpicker = function(context) {
$("input.colorpicker_textfield:not(.colorpicker-processed)", context).each(function() {
var index = $('body').find('input.colorpicker_textfield').index($(this));
Drupal.colorpickers[index] = new Drupal.colorpicker($(this).addClass('colorpicker-processed'));
Drupal.colorpickers[index].init();
});
我可以添加什么来告诉它“侦听”输入.colorpicker\u textfield的背景色,然后在其更改时实时将该值设置为“body”?尝试使用change()将其应用于bg
$("input").change( function () {
//var below would obviously have to be correctly formatted.
var newColor$(this).val();
$(body).css({background-color: newColor});
});
与Cole的答案类似,但有一些改进(假设颜色选择器不包括“#”):
- 使用更具体的选择器
- 使用“实时”事件处理方法,确保处理程序将附加到任何动态创建的ColorPicker
- 如果输入不是十六进制值,则不会更改背景色
- 它直接使用style属性,而不是在jQuery对象中换行
$('input.colorpicker_textfield').live('change', function() {
var color = this.value;
if(color.search((/^[A-Fa-f0-9]{6}/) != -1) {
body.style.backgroundColor = '#'+this.value;
}
});