2012-07-24 36 views
0

似乎像jQuery刪除已經上滑,然後下滑輸入字段的值。不太確定它是否是佔位符,但是內置的slideUp/Down似乎是錯誤的輸入字段。輸入slideUp/slideDown問題

這裏有一個例子:http://jsfiddle.net/k3Bc2/

$(document).ready(function() { 
    $('#slideUp').click(function() { 
     $('input[type="text"]').slideUp(1000); 
    }); 

    $('#slideDown').click(function() { 
     $('input[type="text"]').slideDown(1000); 
    }); 
}); 

如果輸入的輸入字段中的值,然後單擊效果基本show按鈕,等待,直到它的滑動起來,然後點擊了slideDown,你會看到的價值輸入字段丟失。

有誰知道一個解決辦法來得到一個slideUp/slideDown工作的示例鏈接?
使用谷歌瀏覽器,如果這給出了原因的想法。

+1

速戰速決將是把輸入的''滑動跨度,而不是輸入http://jsfiddle.net/k3Bc2/2/ – Imdad 2012-07-24 09:07:45

+0

的我無法重現你使用哪個瀏覽器的問題? – MaX 2012-07-24 09:09:30

+1

我在Chrome 20中遇到了同樣的問題。該值仍然存在,只是幾乎看不見它:http://jsfiddle.net/UJFvx/7/ – 2012-07-24 09:10:08

回答

2

輸入高度爲0時發生錯誤。您應該更改您的方法。使用CSS位置與蒙動畫的方法:

Here is demo link. You'll inspect there will be no bug with this method.

的jQuery:

$(document).ready(function() { 
    $('#slideUp').click(function() { 
     $('input[type="text"]').stop().animate({'top':'200px'},400); 
    }); 

    $('#slideDown').click(function() { 
     $('input[type="text"]').stop().animate({'top':'0px'},400); 
    }); 
});​ 

HTML:

<div id="mask"> 
    <input id="motion" type="text" value="" placeholder="Enter some text.." /> 
</div> 
<input type="button" value="slideUp" id="slideUp" /> 
<input type="button" value="slideDown" id="slideDown" />​ 

CSS:

#mask { position:relative; 160px; height:25px; overflow:hidden; top:0; left:0; } 
#motion { position:absolute; top:0; left:0; } 
input { position:relative; } ​ 
+0

這似乎是目前唯一的解決方案。謝謝。 – danniehansenweb 2012-07-24 10:25:32

1

這似乎是一個錯誤我ñ鉻(不是jQuery)。它在ff中工作正常。

它與font-size有關,我想。 Chrome不會丟失font-size,但是如果您再次設置,則它可以正常工作。

$(document).ready(function() { 
    $('#slideUp').click(function() { 
     $('input[type="text"]').slideUp(1000); 
    }); 

    $('#slideDown').click(function() { 
     $('input[type="text"]').slideDown(1000,function(){ 
      $(this).css('font-size',$(this).css('font-size'));     
     }); 
    }); 
});​ 

Demo

編輯:

我看到上面黑客工作僅一次。如果再次向上/向下滑動,則會失敗。

這裏有一個更好的黑客。

.text{ 
    font-size:13px; 
}​ 

$(document).ready(function() { 
    $('#slideUp').click(function() { 
     $('input[type="text"]').slideUp(1000,function(){ 
       $(this).removeClass('text');   
     }); 
    }); 

    $('#slideDown').click(function() { 
     $('input[type="text"]').slideDown(1000,function(){  
      $(this).addClass('text');  
     }); 
    }); 
});​ 

Demo

+0

經過最新chrome版本的測試。似乎沒有解決的文字。在slideDown後仍然不顯示佔位符,也不是文本。但謝謝你給它一個鏡頭。 – danniehansenweb 2012-07-24 10:24:42

+0

您可以嘗試放置文字而不是佔位符嗎?順便說一句,它與佔位符和文本都在我的win7與最新鉻 – Jashwant 2012-07-24 13:53:23

+0

@DannieHansen,我已更新我的代碼。現在看見:) – Jashwant 2012-07-24 14:12:22