javascript
  • jquery
  • html5
  • 2012-11-05 29 views 2 likes 
    2

    考虑:联样式上动态创建的输入

    $("#scanInDialogItems tr td:nth-child(3)").mouseenter(function() { 
        var q = $(this).html(); 
        $(this).html("<input type='number' style='text-align:right width:50px' min='1' value='" + q + "'/>"); 
        }).mouseleave(function() { 
        var q = $(this).find("input").val(); 
        $(this).html(q); 
        }); 
    

    每当用户将鼠标悬停在我的表的第三列的单元格,内容被替换为输入元件。奇迹般有效。

    问题是,此元素的内联样式未正确应用。例如。例如框中的文字左对齐 - 默认。此外,宽度未设置。

    我在动态创建输入元素前面一个问题读取需要刷新创建时:

    Styles not getting applied properly in dynamically created radio buttons

    所以我尝试添加此:

     $(this).find("input").textinput('refresh'); 
    

    而且还是这样的:

     $(this).find("input").textinput(); 
    

    但这些都没有作品。我的目标平台是最新的Chrome。

    我是不是正确刷新输入?或者还有其他一些问题?

    +0

    我认为这个链接只适用于jQuery手机。无论如何,你可以给'输入'一个类,然后定义该类的CSS样式?如果你尝试输入'min'属性,它是否工作?就像如果你尝试输入'-23',它是否在页面上显示错误? – Ian

    +0

    评论而不是回答,但它可能有帮助...是否有必要添加您的样式内嵌您的新标记,他们可以预期在以前的CSS而不是? –

    +0

    我同意把样式放在css而不是inline中会更好。但在开发过程中,内联更容易。一旦我一切正常,我会在最后在.css中创建样式。 –

    回答

    3

    你已经错过了内嵌样式文本对齐和宽度之间的分号......

    $("#scanInDialogItems tr td:nth-child(3)").mouseenter(function() { 
        var q = $(this).html(); 
        $(this).html("<input type='number' style='text-align:right;width:50px' min='1' value='" + q + "'/>"); 
    }).mouseleave(function() { 
        var q = $(this).find("input").val(); 
        $(this).html(q); 
    }); 
    

    我只是尝试了&前的jsfiddle后,这一切,这是不妥的地方:)

    +0

    对不起。我想这是一个简单的错字。谢谢。添加分号固定它。 –

    +0

    一旦你发现它总是很容易,是不是;) – Archer

    相关问题