我有以下功能,在$(document).ready(function(){
$('.threadWrapper > .littleme').click(function() {
$(this).next().toggle();
$(this).toggle();
$('.littleme').not(this).next().hide();
$('.littleme').not(this).show();
// re-run masonry
$('#mainContent').masonry();
return false;
}).next().hide();
我想要做的是从内联javascript调用它每个包含threadWrapper类的div元素也有自己的id。我想要做的是能够使用内联javascript调用触发此函数并发送id作为参数。例如:
$(function(id){
$('#id > .littleme').next().toggle();
$('#id > .littleme').toggle();
etc. etc.
});
答案 0 :(得分:2)
只需连接选择器的字符串,如下所示:
function toggleStuff(id) {
$('#' + id + ' > .littleme').next().toggle();
$('#' + id + ' > .littleme').toggle();
//etc. etc.
}
在document.ready函数之外定义它,以便它可用。此外,如果你想要的话,你可以缩短它:
$('#' + id + ' > .littleme').toggle().next().toggle();
答案 1 :(得分:1)
您可以使用常规的javascript函数:
function Something(id) // id is a jquery object
{
id.find('.littleme').next().toggle();
id.find('.littleme').toggle();
etc. etc.
}
答案 2 :(得分:0)
无需从您的元素中调用任何内联JavaScript。我建议如下:
$('.threadWrapper').click(function() {
$(this).find(".littleme").next().toggle();
$(this).find(".littleme").toggle();
etc. etc.
});
查看您的选择器,.littleme
是.threadWrapper
的直接后裔。因此,如果您将点击事件绑定到所有.threadWrapper
,则可以通过在当前上下文中进行搜索来选择.littleme
。
另外,如果您感兴趣,可以使用.end
合并这两个语句:
$(this).find(".littleme").next().toggle().end().toggle();