jquery:整个类的一个回调,无论它包含多少个元素
我很确定这个问题已经被问过(但我没有找到解决方案)。
我的问题是,回调会为类的每个元素重复它的工作。示例:
$('a').click(function() {
var id = $(this).attr('rel');
$('.jsForm').not('#'+id).slideUp('slow', function() {
$('#'+id).slideToggle('slow');
});
});
jsForm 类应用于 3 个不同的 div 元素,它们都有一个唯一的 id。 id 来自 rel 属性中的 a-tag。
这段代码的目的是除了具有单击 id 的元素之外的所有 div 元素都向上滑动。其他 div 向上滑动后,主 div 应该切换。
但如果我有 3 个 div,则回调函数会被调用 2 次,并且会切换两次。
是否有可能避免类的每个元素都有自己的回调函数?整个类的一个回调函数对我来说就很好了。
我希望你能理解我的问题。谢谢。
i'm pretty sure that this question has allready been asked (but i didn't find the solution).
Well my problem is, that the callback repeats it's job for every element of a class. example:
$('a').click(function() {
var id = $(this).attr('rel');
$('.jsForm').not('#'+id).slideUp('slow', function() {
$('#'+id).slideToggle('slow');
});
});
the class jsForm is applied to 3 different div elements which all have a unique id. The id comes from a-tag in the rel attribute.
the aim of this code is that all the div elements apart from the one with the clicked id are sliding up. After the other divs slided up, the main div should toggle.
But if I have 3 divs, the callback functions is called 2 times and it toggles twice.
is there a possibility to avoid that every element of a class gets a own callback function? One callback functions for the whole class would be fine for me.
i hope you can understand my question. thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用计数器仅在最后一张幻灯片之后执行:
You could use a counter to execute only after the last slide:
您可以执行类似的操作,在回调中检查是否已达到所需状态。例如,这里只有一个 jsForm 可见。
You could do something like this where you check in the callback that you have reached the desired state. Here for example only one jsForm is visible.