使用参数调用javascript处理程序

使用参数调用javascript处理程序,javascript,parameters,handler,Javascript,Parameters,Handler,我有一个方法在ajax负载上调用另一个方法,但这与这个问题无关。我想把参数传递给这个方法。这怎么可能 单击按钮时,下页应滚动至id 25。可滚动区域将动态添加到codebehind中。这只是我试图实现的一个例子 JS 将参数放入对象中,如下所示: var handler = { param1: 'val1', param2: 'val2' //ect... } handler(handler); 编辑: 更改: $("#divy").scrollTop($("#"+id).posit

我有一个方法在ajax负载上调用另一个方法,但这与这个问题无关。我想把参数传递给这个方法。这怎么可能

单击按钮时,下页应滚动至id 25。可滚动区域将动态添加到codebehind中。这只是我试图实现的一个例子

JS


将参数放入对象中,如下所示:

var handler = {
  param1: 'val1',
  param2: 'val2' //ect...
}

handler(handler);
编辑:

更改:

$("#divy").scrollTop($("#"+id).position().top);
致:

应该适用于您编辑的问题。

更新1 我认为在这个实例中,您可能可以在输入元素的上下文中使用this关键字。在您的实例中,这最终将用这个替换id。这也将删除附加的select。试试这个:

function callHandler(handler)
{
    handler();
}

function scroll()
{
    $("#divy").scrollTop($(this).position().top);
}
这可能不起作用,因为我不确定上下文是否是input的上下文,或者callHandler的上下文,试一试吧!:

起初的 您应该能够像这样将参数传递到处理程序中:

function callHandler(handler)
{
    var param = 'Hello world';
    handler(param);
}

callHandler(function(phrase)
{
    alert(phrase); 
});

除非我误解了,否则若处理程序是一个函数,那个么像任何正常场景一样向它传递参数

function callHandler(handler){
   var passme = "test";
   handler(passme);
}

您似乎没有将参数传递到callHandler方法中的处理程序中,而是尝试将scroll参数var scroll={param1:25}作为函数调用


配置对象和函数名使用相同的名称。请使用不同的名称:此外,您声明和使用的函数签名不一致。当您尝试传入对象时,scroll函数接受字符串id。

我尝试过这个方法,但不适用于我。我收到一个javascript未找到对象错误。想法?我已经更新了我要找的东西。这是更动态的参数传递。也许我不清楚该怎么开始。查看上面的编辑。检查我更新的答案,我认为这个例子的上下文应该足够了。我已经更新了我要找的内容。这是更动态的参数传递。也许我不清楚该怎么开始。查看上面的编辑。为什么不直接将参数传递到scroll?谢谢。是的,我找到了接受参数数组的function.apply方法。我认为在我的例子中,使用参数数组和处理程序可能会很好,正如你所说的。对,但是要小心apply,因为它需要receiver参数作为第一个参数。如果您不知道一般情况下回调的性质,那么这可能是一个问题。在您的特定情况下,您需要将其设置为null。我使用了“this”,它工作得很好。在我的研究中,我看到它与'this'和'null'一起使用,所以我想我的上下文与'this'配合得很好,是的。传入null有效地将window指定为接收方,因此在本例中,这些null和this and window的工作方式完全相同。
function callHandler(handler)
{
    var param = 'Hello world';
    handler(param);
}

callHandler(function(phrase)
{
    alert(phrase); 
});
function callHandler(handler){
   var passme = "test";
   handler(passme);
}