首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在添加文本前完成“传输”

在添加文本前完成“传输”
EN

Stack Overflow用户
提问于 2010-12-09 09:49:05
回答 2查看 211关注 0票数 0

我正在添加一个带有jquery effect transfer的列表。我想让文本- "element“只有在传递效果完全完成后才会出现。有什么想法吗?谢谢,

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 09:54:28

这太糟糕了!你正在使用的效果似乎没有回调的选项。http://docs.jquery.com/UI/Effects/Transfer

这个有回调http://api.jquery.com/animate/

更多回调http://api.jquery.com/slideDown/示例

票数 0
EN

Stack Overflow用户

发布于 2013-11-16 03:39:53

是的,但不要忘记jQuery deferred ;)

下面是如何实现回调的快速示例代码。

代码语言:javascript
复制
$( "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();
  });

});

试试这个:http://jsbin.com/oSuZoDaK/2/edit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4394138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档