【问题标题】:Change input/textarea stylesheet on element focus (click) using javascript / jquery使用 javascript / jquery 在元素焦点(单击)上更改输入/文本区域样式表
【发布时间】:2013-10-14 10:34:57
【问题描述】:

这是我尝试做的,我知道这需要很多小时才能获得漂亮的 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();
});

以上代码只是一个原型。 Redactor 空气模式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>

你在这里看到带有值 Remark 和空 Textarea 的输入框。我想要当人们点击它时。有一个样式表编辑器只编辑那个 textarea/input 元素...


对于刚刚阅读此问题的任何人..我知道有几种方法可以将这个 .css-editor 添加/启用到 DOM....如果我需要自己编写代码,我现在知道如何实现它。 . + 比选择下拉菜单更好的 UI + 数小时的调试...它就像 TinyMCE 或 CLEditor 的小版本,适用于 单个 HTML 元素,而不是 textarea 中的整个 HTML。

我只是想知道是否有任何插件/sn-p 可以立即使用..

【问题讨论】:

  • @Vorapoap 做什么?
  • OK 这只是我正在创建的发票模板中的一小段代码...
  • 这很难单独用措辞来解释..我不是英语母语人士...请查看我给imperavi.com/redactor/examples/air的redactor空气模式的链接..它适用于任何部分HTML 文档.. 我只想要这个用于单个输入/文本区域..(请参阅我的 html 代码.. 我只想要它用于备注输入框和 textarea class=invoice-remark)

标签: javascript jquery css wysiwyg css-editor


【解决方案1】:

为什么不只是:

$(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 上创建一次并操作它的位置和可见性。

希望它更好:-)

【讨论】:

  • 不,这不是我想要做的.. 请检查指向编辑器空气模式imperavi.com/redactor/examples/air 的链接.. 当您单击文本时.. 旁边会弹出一个样式表编辑器..我不希望整个文本区域都使用这个。我只想要一个输入/文本区域框
  • 哈哈,不。谢谢你的尝试。我知道有几种方法可以在 DOM 中添加和删除元素。在我的例子中是 CSS 编辑器...我知道它可能需要 50 -100 行代码来做我想要的样式表编辑器。我还需要实现比这个下拉选择更好的 UI。 + 数小时的调试。我只是想知道互联网上是否已经有一个,以便我可以立即使用。
【解决方案2】:

不需要在文本框上绑定焦点事件,它本身已经附加了焦点、焦点和焦点事件。所以你可以简单地使用 .onfocus 或者你也可以使用 .live 函数。

直接使用 onfocus 处理程序:

$("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>");
});

【讨论】:

    【解决方案3】:

    您需要添加function() {}

    $("input[type=text],textarea").click(function(){
       $(this).removeClass("your_old_class").addClass("your_new_class")
    });
    

    【讨论】:

    • 不,这不是我想要做的.. 请检查指向编辑器空气模式imperavi.com/redactor/examples/air 的链接.. 当您单击文本时.. 旁边会弹出一个样式表编辑器..我不希望整个文本区域都使用这个。我只想要一个输入/文本区域框
    • 是不是只把选中的文字改成你想要的?
    • 更改具有焦点的 INPUT[type=text] 或 TEXTAREA。
    • 很抱歉,我没有得到你想要的东西。如果您需要合理的帮助,您需要清楚地描述您想要什么。
    • 我想要一个完整的 jquery 脚本或 javascript,当我点击 INPUT 或 TEXTAREA 时,简单的字体样式编辑器会显示为 [B][U][I][LEFT ALIGN] [右对齐][中心对齐]。然后,当您单击此按钮中的任何一个时.. 该文本区域/输入的样式对于该输入框中的任何文本都会完全改变。
    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2018-11-23
    • 2015-08-25
    • 2011-05-10
    • 2016-12-27
    相关资源
    最近更新 更多