2013-03-07 41 views
0

我正在使用jQuery和Zepto。 我想有条件地调用jQuery集合上的Zepto方法。任何人都有雄辩的解决方案?我的代码目前看起来是这样的:在jQuery集合上使用Zepto方法

// Obtain jQuery Object 
var $selector = jQuery('.selector'); 

// Desktop 
$selector.click(...); 

// Mobile 
if (window.Zepto){ 
    $selector.slideLeft(...); 
} 
+0

为什么不将这些Zepto方法集成到jQuery插件中? – CodeColorist 2013-03-07 01:22:26

+0

试过...没有编辑Zepto源码就无法做到...即e.touches需要变成e.originalEvent.touches ...等等 – Globalz 2013-03-07 21:59:23

回答

0

这是非常脆弱的,但你可以使用Function.call来的Zepto功能应用到jQuery的对象。我做了一个概念验证小提琴(http://jsfiddle.net/STnUQ/1/),显然它适用于简单的css函数。

var div = jQuery('.test'); 
Zepto().css.call(div, 'color', 'red'); 

只要jQuery对象的底层数据结构匹配Zepto,它就可以正常工作。但是这并不能保证(或者甚至可能),你应该对你的具体用途进行广泛的测试。