javascript
  • jquery
  • html5
  • 2012-11-05 33 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

    相關問題