Jquery 格式化文本+使用JQ创建元素
我有两段jquery代码,它们完全分开工作,但在一起-不 基本上,有一些代码可以生成具有不同id的textareas,还有一些代码可以对textareas中的文本进行格式化。当textarea中的文本加粗时,它需要保持这样,当我生成第二个textarea并加粗时,它也需要保持加粗。这是:Jquery 格式化文本+使用JQ创建元素,jquery,Jquery,我有两段jquery代码,它们完全分开工作,但在一起-不 基本上,有一些代码可以生成具有不同id的textareas,还有一些代码可以对textareas中的文本进行格式化。当textarea中的文本加粗时,它需要保持这样,当我生成第二个textarea并加粗时,它也需要保持加粗。这是: <button id="bold">B</button> <button id="add_txt">Add txtarea</button> <div
<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,并在该类中添加样式链接很好,与前面建议的答案相同:有效,但当我创建另一个文本区域,并在其中添加粗体文本时,第一个文本区域变为未绑定,也不能再次加粗