我有两段jquery代码,它们完全分开,但是在一起 - 没有。
基本上,有代码可以生成textareas(具有不同的id),以及允许格式化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");
});
答案 0 :(得分:4)
如果您更改了具有焦点的文字区域的样式,请尝试此http://jsfiddle.net/qhjJs/3/
答案 1 :(得分:3)
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");
});
答案 2 :(得分:2)
试试这个:
$("textarea").live("focus",function() {
$.activeEl = $(this);
});
$("#bold").click(function() {
$.activeEl.css("font-weight", "bold");
});
答案 3 :(得分:1)
在为textarea绑定焦点事件时,该元素将不存在。
你应该这样做:
$("textarea").live('focus', function() {
activeEl = $(this);
});