2013-06-20 70 views
-1

试图将选择器作为变量传递似乎不起作用。我可以让它在一个函数之外工作,所以不知道发生了什么。将选择器作为变量传递给jQuery中的函数

function doTheHarlemShake() { 
    var shakeItem = $(".letsGetStarted"); 
    if(shakeItem.hasClass("show")) { 
     alert("works") 
     shakeItem.delay(2000).effect("bounce", { times: 3 }, 800); 
     shakeItem.delay(2000).effect("bounce", { times: 3 }, 800); 
     shakeItem.delay(2000).effect("bounce", { times: 3 }, 800); 
    } 
} 
+0

它是什么应该那么,你打算如何使用它? – pie6k

+0

我看不到这是行不通的。你可以在(非)行动中展示它吗? – lonesomeday

+0

它可能是它必须在$(document).ready(function(){}); –

回答

1

确切代码的工作,你的小提琴提供的,我所做的一切在我的小提琴是包括jQuery和jQueryUI的引用:

Demo

var shakeMe = $(".letsGetStarted"); 
doTheHarlemShake(shakeMe); 

function doTheHarlemShake(shakeItem) { 
    if(shakeItem.hasClass("show")) { 
     shakeItem.delay(2000).effect("bounce", { times: 3 }, 800); 
     shakeItem.delay(2000).effect("bounce", { times: 3 }, 800); 
     shakeItem.delay(2000).effect("bounce", { times: 3 }, 800); 
    } 
} 
+0

网络控制台(F12)是你的朋友。 'Uncaught ReferenceError:$ is not defined'(可能告诉OP有什么错误)。也许你应该解释一些关于实际错误的内容,而不是仅仅重复OPs代码。 – Christoph

+0

它实际上是我使用的其他代码,更多地使用控制台,我确定该元素正在使用展示类,并且使用隐藏类开始。但是当我看到它上演的代码时,这就是我被绊倒的地方。它必须非常快速地应用表演课程。 – Lukasz