2011-10-27 212 views
0

我試圖水平對齊inputimg元素在特定的div。我給了input元素一個CSS屬性display:block,但我的Firebug顯示其顯示屬性爲none輸入字段不顯示

關於CSS

.block_feedback .field input { 
    color: #FFF; 
    width:375px; 
    height:17px; line-height:17px; 
    margin-left:15px; margin-top:6px; 
    display:block; 
    background-color:transparent; 
    border:0px; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:16px; 
    float:left; 
} 
.block_feedback .field img { 
    color:#F00; 
    width:27px; 
    height:27px; line-height:25px; 
    margin-left:405px; margin-top:0px; 
    display:block; 
    background-color:transparent; 
    border:0px; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:16px; 
    font-weight:bold; 
    font-weight:bold; 
    float:left; 
} 

HTML

<div class="field"> 
    <input type="text" name="name" class="w_def_text" title="Name*" /> 
    <img width="27" height="27" src="images/error.jpg" alt="Error"> 
</div> 

螢火蟲被示出作爲

<input class="w_def_text" type="password" title="Password*" name="password" style="display: none;">jQuery1510542302776850034=Object { olddisplay="block"} 
<img width="27" height="27" alt="Error" src="images/error.jpg" style="display: block;"> 
<span style="display: none;">Password*</span>jQuery1510542302776850034=Object { olddisplay="block"} 

jQuery的

function init_fields() { 
$('.w_def_text').each(function() { 
    var text = $(this).attr('title'); 
    var html = '<span>' + text + '</span>'; 
    $(this).parent().append(html); 

    if($(this).val() == '') { 
     $(this).hide(); 
     $(this).next().show(); 
    } 
    else { 
     $(this).css({'display' : 'block'}); 
     $(this).next().hide(); 
    } 
}); 

$('.w_def_text').live('blur', function() { 
    if($(this).val() == '') { 
     $(this).hide(); 
     $(this).next().show(); 
    } 
}); 

$('.w_def_text ~ span').live('click', function() { 
    $(this).hide(); 
    $(this).prev().css({'display' : 'block'}).focus(); 
}); 
} 
+0

看起來好像jQuery隱藏它。分享你的JavaScript? – kojiro

+0

這裏的firebug示例中的jquery位似乎表明你已經在某個地方玩了一些JS,在背後使用css。 –

+0

@Marc,但我不認爲我的jQuery正在修改任何顯示屬性。 –

回答

0

我不完全確定你想要達到什麼目標,但根據你的問題標題和簡要描述,似乎你根本不知道爲什麼你的輸入元素被隱藏,或者爲什麼它在Firebug中是display: none

它似乎很清楚,它將被.hide()方法更改爲您的jQuery代碼中的display: none

作爲每jQuery documention

沒有參數,所述.hide()方法是隱藏的元件的最簡單的方法:

$('.target').hide();

匹配的元素將是 立即隱藏,以沒有動畫。 這大致相當於 調用.css('display', 'none')

沒有看到你的HTML標記的其餘部分或知道腳本的目的,很難說哪一行包含.hide()原因造成的。只需禁用JavaScript即可證明jQuery代碼是根本原因。