0

シンプルなテキストをテキストエリアフィールドに変更する次のコードがあります。

        $('.field').live({      
            mouseenter:
                function()
                {
                    title='<?php echo $user_title; ?>';
                    old_value=$(this).text();
                    item_id=$(this).attr('id');
                    item=$(this).parent('td');
                    height=event.target.offsetHeight;
                    width=event.target.parentNode.offsetWidth;
                    new_value=(old_value=='Not translated') ? '' : old_value;
                    $(this).empty();
                    var field=(title=='Login') ? "<textarea style='vertical-align: middle; font-family: Helvetica; font-size: 12pt; width: 212px;' id='new_value' name='term'>" + new_value + "</textarea>" 
                                : "<textarea style='vertical-align: middle; font-family: Helvetica; font-size: 12pt; width: 212px;' id='new_value' name='term'>" + new_value + "</textarea><div id='save_button' class='btn btn-primary' href='#'>>></div>";
                    $(this).html(field);
                    $("#new_value").height(height);
                    button_id=item_id.split('/')[0];
                    button_id=button_id.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
                    $("#"+button_id).show();

                    $("#new_value").click(function()
                    {
                        if (title=='Login') 
                            window.location.replace('<?php echo $fb_url?>');
                    });
                },
            mouseleave:
                function()
                {
                    $(this).empty();
                    $(this).html(old_value);
                    $("#"+button_id).hide();
                    alert($(this).html());
                }
            }
        );

テキストの div ブロック:

echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'>".
strip_tags($record['translate']['coalesce(loc.language_value)'])."</div>";

それは正しく動作しますが、追加の div ブロックを追加する必要があります:

echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'><div style='width: 200px;'>".
strip_tags($record['translate']['coalesce(loc.language_value)'])."</div></div>";

このアクションの後、私のコードは機能しません! テキストを textarea フィールドに変更しますが、「mouseleave」イベントでは$(this).empty()構築が機能しません! 教えてください、どうすれば修正できますか?

4

2 に答える 2

0

DIV タグを閉じた直後に TD タグを閉じる必要があります。

echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'>".
                                        strip_tags($record['translate']['coalesce(loc.language_value)'])."</div>";

TD タグと id 属性の一重引用符を閉じるのを忘れただけです。

  echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'>".strip_tags($record['translate']['coalesce(loc.language_value)'])."'</div></td>";

このように動作するはずです。すべての html タグと属性が有効であることを確認してください。

于 2012-07-18T07:42:16.357 に答える
0

タグを閉じてみてください

echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'><div style='width: 200px;'>".strip_tags($record['translate']['coalesce(loc.language_value)'])."</div></div></td>";

最後に追記しました

于 2012-07-18T07:40:52.430 に答える