我正在添加一个带有jquery效果传输的列表。我想制作文本 - 只有在传输效果完成后才会出现“元素”。任何的想法?谢谢,
<script type="text/javascript">
$(document).ready(function(){
$("#add-li").click(function(){
var NewLI = document.createElement("li");
var ul = document.getElementById("ul");
NewLI.innerHTML = 'element';
ul.appendChild(NewLI);
$("#add-li").effect("transfer", { to: $("#ul li:last-child"), className: "ui-effects-transfer" }, "slow");
})})
</script>
<style type="text/css">
.ui-effects-transfer { border: 2px dotted #FFE600; }
</style>
</head>
<body>
<p><input type="button" id="add-li" value="add list" /></p>
<br /><br /><br /><br /><br /><br /><br />
<p>
<div id="effect">Below this the list.
<ul id="ul">
</ul>
</div>
</p>
</body>
答案 0 :(得分:1)
是的,但不要忘记延迟jQuery;)
以下是如何实现回调的快速示例代码。
$( "div" ).click(function() {
var html1 = $(this).clone();
var i = 1 - $( "div" ).index( this );
$( this ).effect( "transfer", { to: $( "div" ).eq( i ) }, 1000 ).promise().done(function(){
$( "div" ).eq( i ).html(html1.html());
$(this).empty();
});
});
答案 1 :(得分:0)
太烂了!看来您使用的效果没有回调选项。 http://docs.jquery.com/UI/Effects/Transfer
的更多示例