Jquery 格式化文本+使用JQ创建元素

Jquery 格式化文本+使用JQ创建元素,jquery,Jquery,我有两段jquery代码,它们完全分开工作,但在一起-不 基本上,有一些代码可以生成具有不同id的textareas,还有一些代码可以对textareas中的文本进行格式化。当textarea中的文本加粗时,它需要保持这样,当我生成第二个textarea并加粗时,它也需要保持加粗。这是: <button id="bold">B</button> <button id="add_txt">Add txtarea</button> <div

我有两段jquery代码,它们完全分开工作,但在一起-不

基本上,有一些代码可以生成具有不同id的textareas,还有一些代码可以对textareas中的文本进行格式化。当textarea中的文本加粗时,它需要保持这样,当我生成第二个textarea并加粗时,它也需要保持加粗。这是:

<button id="bold">B</button>
<button id="add_txt">Add txtarea</button> 

<div id="vk_main">


</div>

var c = 0;
$.activeEl = $();

$('#add_txt').on('click', function() {
    var $div = $('<textarea id="ta_' + (c) + '">Text here.</textarea>');
    $('#vk_main').append($div);
});

$("textarea").focus(function() {
    $.activeEl = $(this);
});

$("#bold").click(function() {
    $("textarea").css("font-weight", "");
    $.activeEl.css("font-weight", "bold");
});

工作示例:

您在activeEl变量上有一个作用域问题。尝试将其放在某个命名空间上,例如jQuery对象:

var c = 0;
$.activeEl = $();

$('#add_txt').on('click', function() {
    var $div = $('<textarea id="ta_' + (c) + '">Text here.</textarea>');
    $('#vk_main').append($div);
});

$("textarea").focus(function() {
    $.activeEl = $(this);
});

$("#bold").click(function() {
    $("textarea").css("font-weight", "");
    $.activeEl.css("font-weight", "bold");
});​
试试这个:

$("textarea").live("focus",function() {
   $.activeEl = $(this);
});

$("#bold").click(function() {
    $.activeEl.css("font-weight", "bold");
});

如果更改具有焦点的文本区域的样式,则在绑定textarea的焦点事件时尝试此

,该元素将不存在

您应该这样做:

$("textarea").live('focus', function() {
    activeEl = $(this);
});

在这里张贴你的代码;JS Fiddle和任何外部站点一样,可以用于演示或参考,但如果在这种情况下,JS Fiddle再次倒下。。。你的外部资源限制了这个问题的使用。有效,但当我创建另一个textarea,并在其中添加粗体文本时,第一个textarea将被取消绑定,也不能再次粗体:它将始终粗体显示最后一个textarea的字体。好的,它需要粗体显示textarea并保持粗体,如果你明白我想说的话否,我希望更改是永久性的,更改焦点后格式需要稳定。请再次检查我添加了permenet类fontWeight,并在该类中添加样式链接很好,与前面建议的答案相同:有效,但当我创建另一个文本区域,并在其中添加粗体文本时,第一个文本区域变为未绑定,也不能再次加粗