0

私は2つのjqueryコードを持っています、それらは完全に別々に機能しますが、一緒に-いいえ。

基本的に、(異なるIDを持つ)テキストエリアを生成するコードと、テキストエリア内のテキストをフォーマットできるようにするコードがあります。textareaのテキストが太字の場合は、そのように保つ必要があります。2番目の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");
});

実例:http ://jsfiddle.net/JohnnyNT/qhjJs/

4

4 に答える 4

4

フォーカスのあるテキスト領域のスタイルを変更する場合は、このhttp://jsfiddle.net/qhjJs/3/を試してください。

于 2012-05-09T11:32:28.407 に答える
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");
});​
于 2012-05-09T11:28:15.720 に答える
2

これを試して:

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

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

http://jsfiddle.net/qhjJs/5/

于 2012-05-09T11:29:09.057 に答える
1

textareaのfocusイベントをバインドするとき、その要素は存在しません。

これを行う必要があります:

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

http://jsfiddle.net/YqvWg/

于 2012-05-09T11:33:30.897 に答える