Javascript 使用jQuery单击时选择文本

Javascript 使用jQuery单击时选择文本,javascript,jquery,firefox,Javascript,Jquery,Firefox,我想在Firefox中修复以下问题 当我试图用双击鼠标来选择文本框中的文本时,它没有选择文本,光标会移到文本的开头。你知道如何解决这个问题吗?但这在谷歌浏览器中效果很好 当你试图编辑价格栏时,你不能选择值。谢谢 我的代码: $(document).ready(function () { $('td.edit').click(function () { $('.ajax').html($('.ajax input').val()); $('.ajax

我想在Firefox中修复以下问题

当我试图用双击鼠标来选择文本框中的文本时,它没有选择文本,光标会移到文本的开头。你知道如何解决这个问题吗?但这在谷歌浏览器中效果很好

当你试图编辑价格栏时,你不能选择值。谢谢

我的代码:

 $(document).ready(function () {
     $('td.edit').click(function () {
         $('.ajax').html($('.ajax input').val());
         $('.ajax').removeClass('ajax');

         $(this).addClass('ajax');
         $(this).html('<input id="editbox"  size="' + $(this).text().length + '" type="text" value="' + $(this).text() + '">');

         $('#editbox ').focus();
     });

     $('td.edit').keydown(function (event) {
         arr = $(this).attr('class').split(" ");
         if (event.which == 13) {
             $.ajax({
                 type: "POST",
                 url: "supplierprice/config.php",
                 data: "value=" + $('.ajax input').val() + "&rowid=" + arr[2] + "&field=" + arr[1],
                 success: function (data) {
                     $('.ajax').html($('.ajax input').val());
                     $('.ajax').removeClass('ajax');
                 }
             });
         }
     });

     $('#editbox').live('blur', function () {
         $('.ajax').html($('.ajax input').val());
         $('.ajax').removeClass('ajax');
     });
 });
您可能希望使用而不是焦点。
我对你的脚本做了一些修改

问题是,单击事件从editbox输入冒出,因此$'editbox'。焦点;在每次单击时执行,以阻止文本选择

像这样修改代码

        $('td.edit').click(function(e){
            var $target = $(e.target);
            if($target.is('#editbox')){
                return;
            }
            ///// rest of code
        }
尝试使用。选择函数。这用于选择可编辑输入元素中的文本

在您的情况下,尝试添加行

$('#editbox').select();
线下

$('#editbox ').focus();

希望如此。

您需要停止单击事件从editbox传播到td.edit。尝试添加以下内容:

$("td.edit").on("click", "#editbox", function(e) { e.stopPropagation(); });
请使用此代码

$('td.edit').click(function(e){
            var $target = $(e.target);
            if($target.is('#editbox')){
                return;
            }

        }

这将导致您无法在文本内单击,单击后文本将始终处于选中状态。@HarryFink啊!是的,这个有那个问题。你的解决方案会更好。