将参数发送到jquery函数

时间:2010-03-11 13:40:58

标签: jquery function parameters

我有以下功能,在$(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.
});

3 个答案:

答案 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();