使用javascript / jquery更改元素焦点(单击)上的输入/文本区域样式表
Change input/textarea stylesheet on element focus (click) using javascript / jquery
这就是我尝试做的事情,我知道这需要很多小时才能获得好看的UI。
$("input[type=text],textarea").bind("focus", function()![enter image description here][1] {
var $th = $(this).before("<div class='css-editor'><select class='font-family-select'> <option></option></select><select class='font-style-select'><option>italic</option></select><select class='font-size-select'></select></div>");
}).bind("blur", function() {
$('.css-editor').remove();
});
上面的代码只是一个原型。编校器空气模式 http://imperavi.com/redactor/examples/air/是我在网上能找到的最接近的东西。
我想知道目前是否有任何jQuery插件或Javascript可以做到这一点?
<table style="width:100%" class="remark" cellspacing="0" cellpadding="0">
<tr class="invoice-cell-section">
<th colspan="6" class="invoice-cell-top">
**<input type="text" value="{_ Remark}"/>**
</th>
</tr>
<tr>
<td colspan="6" class="invoice-footer invoice-cell-bottom">
**<textarea class="invoice-remark static"></textarea>**
</td>
</tr>
</table>
您在此处看到带有值"备注"和空文本区域的输入框。我希望人们点击它时。有一个样式表编辑器可以仅编辑该文本区域/输入元素...
对于任何只是阅读这个问题的人..我知道有几种方法可以将此.css编辑器添加/启用到 DOM.... 我现在看到如果我需要自己编码如何实现它..+ 比选择下拉列表更好的 UI + 数小时的调试... 它就像TinyMCE或CLEditor的一个小版本,适用于单个HTML元素,而不是文本区域中的整个HTML。
我只想知道是否有任何可以立即使用的插件/片段。
为什么不只是:
$(document).on('focus', 'input[type=text],textarea', function(){
$(this).addClass('focused');
});
$(document).on('blur', 'input[type=text],textarea', function(){
$(this).removeClass('focused');
});
定义一个名为 focused
的 CSS 类,并在那里应用样式。
希望有帮助。
编辑:
在更好地了解您的需求之后,请考虑这样的事情。
创建一个不可见的浮动(绝对定位)面板 - 它将是"CSS 编辑器"。
现在,在输入的每个焦点上,了解它在文档中的位置,并相对显示不可见的浮动 CSS 编辑器。 看看这个想法:
$(document).on('focus', 'input[type=text],textarea', function(){
$('.css-editor').css({left: $(this).offset().left+'px', top: $(this).offset().top+'px'}).show();
});
$(document).on('blur', 'input[type=text],textarea', function(){
$('.css-editor').hide();
});
请注意,没有必要删除并重新创建这个隐藏的元素。 你可以在DOM上创建它一次,并操纵它的位置和可见性。
希望它更好:-)
无需在文本框上绑定焦点事件,它本身附加了焦点,焦点和焦点事件。因此,您可以简单地使用 .onfocus,也可以使用 .live 函数。
直接使用对焦处理程序:
$("input[type=text],textarea").focus(function() {
var $th = $(this).before("<div class='css-editor'><select class='font-family-select'> <option></option></select><select class='font-style-select'><option>italic</option></select><select class='font-size-select'></select></div>");
});
使用实时事件处理程序:
$("input[type=text],textarea").live("focus",function() {
var $th = $(this).before("<div class='css-editor'><select class='font-family-select'> <option></option></select><select class='font-style-select'><option>italic</option></select><select class='font-size-select'></select></div>");
});
添加function() {}
$("input[type=text],textarea").click(function(){
$(this).removeClass("your_old_class").addClass("your_new_class")
});
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 使用模拟按键在输入框中自动输入文本
- 如何添加类,同时开始在文本字段中输入文本
- JQuery使用相同的功能自动完成各种输入文本
- 如何设置输入文本框jquery的值
- 输入文本框为空时的阻止按钮asp.网络表单
- 基于单选框更新页眉,选中并选择输入文本
- 将输入文本与某个选项的值相匹配并自动选择
- 如何在 JavaScript 中创建输入文本框
- 如何使用纯Javascript观看输入文本框
- 需要使用javascript获取输入文本,然后将其添加到句子中
- php&js-将电子邮件添加到输入文本中
- 动态启用/禁用来自控制器的输入文本
- .val()不返回输入文本
- 从确认框中预填充输入文本框
- 如何使用JavaScript解析输入文本中给定的数据
- 添加/删除/更改输入文本的部分值
- 根据输入文本按元素排序,AngularJS
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何从Tr重复的输入文本中获取值