2010-01-31 75 views
2

我想用jquery ui转移来隐藏一个元素。jquery ui转移帮助

我得到了div.click和span.target。我想要div被移动到跨度点击。

我想这代码:

$("div.click").live('click', function() { 
     var i = 1 - $("div.click").index(this); 
     $(this).effect("transfer", { to: $("span.target").eq(i) }, 1000); 
}); 

但没有任何反应。

在他们的演示中,我下载了它说转移是一个“隐藏”选项。但在他们的网站上,它说它是一个“效果”选项。

有人可以帮我理解如何使用它?

回答

12

按照documentation(这是相当difficult to find),您必须在风格类ui-effects-transfer为了(通常指定一个虚线边框)看到摆在首位转移。

虽然hide()方法的文档有些误导,但您不能对hide()使用"transfer"效果。但是,如果您想在"transfer"效果完成后使元素不可见,则可以使用回调,就像我在以下演示中所做的那样。

工作演示:http://jsbin.com/iwijo(可编辑经由http://jsbin.com/iwijo/edit

P.S.我假设您的代码中的1 -是故意的,而不是拼写错误。向eq()传递负面索引使其按相反顺序选择元素。

1

documentation状态

转移元素的轮廓 另一个元素

所以,无藏身这里所涉及的。

如果你想隐藏的元素,所有你需要做的是连锁的效果后hide()功能:

$("div.click").live('click', function() { 
     var i = 1 - $("div.click").index(this); 
     $(this).effect("transfer", { to: $("span.target").eq(i) }, 1000).hide(); 
}); 

请不 - 我没有测试你的代码 - 我只是说了隐藏部分,所以我不知道它的工作:)

2

,而不是一个链接,而可以使用一个回调函数 - 为了做到这一点只是当传输finshed:

$("div.click").live('click', function() { 
    var i = 1 - $("div.click").index(this); 
    $(this).effect('transfer', { to: $("span.target").eq(i) }, 1000, function(){ 
     $(this).hide(); 
    }); 
}); 

(我用它这样的附加图片代替。)