添加jQuery UI中断jQuery show()

时间:2010-08-26 11:49:03

标签: javascript jquery show

我有一些运行正常的jQuery代码,直到我添加jQuery UI库(1.7.2),这导致show()方法在指定回调时失败。

$('#main.home ul#promotions').show(function() {
    if (typeof f == "function") f();
});

似乎jQuery UI覆盖了show,现在我需要为“effect”指定一个额外的参数,以下代码修复了这个问题:

$('#main.home ul#promotions').show('blind', function() {
    if (typeof f == "function") f();
});

然而,这是一个不应该依赖于jQuery UI库的脚本的一部分,所以理想情况下我想在这种情况下停止jQuery UI覆盖show。

有人可以建议如何做到这一点吗?

戴夫

1 个答案:

答案 0 :(得分:2)

普通的jQuery .show()方法不接受单个函数参数。它既不需要参数,也不需要持续时间和(可选)回调。因此jQuery UI版本是兼容的。

对于普通的jQuery,如果你对立即发生.show()感兴趣,我认为你可以将一个空零作为第一个参数传递。但是,我不明白为什么你这样做;如果您不想设置动画,则.show()是同步的,您可以在调用后立即放置“回调”代码。换句话说,在这种情况下回调是没有意义的。

编辑 - 正如无知的知识渊博的Craver先生所指出的那样,仅使用一个函数调用.show()就像用.show("normal", theFunction)调用它一样。不幸的是,jQuery UI代码显然会混淆,但你可以用“normal”作为第一个参数进行编码,你应该没问题。