Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用参数调用用户定义函数_Jquery_Function - Fatal编程技术网

Jquery 使用参数调用用户定义函数

Jquery 使用参数调用用户定义函数,jquery,function,Jquery,Function,我正在定义函数func1(); 我要带一些情人 然后我想稍后在文档中这样称呼它: $('#some_id').click(func1($this)); $('#some_id').click(func1(param1, param2)); 但它不起作用 我一直在处理它有一段时间了,但至少对我来说jquery/javascript处理用户定义函数的方式非常奇怪。有人能给我提供一个简单的代码片段吗?Thx应该是 function func1(aaa, bbb) { ... } 下面是一个简单

我正在定义函数func1(); 我要带一些情人

然后我想稍后在文档中这样称呼它:

$('#some_id').click(func1($this));
$('#some_id').click(func1(param1, param2));
但它不起作用

我一直在处理它有一段时间了,但至少对我来说jquery/javascript处理用户定义函数的方式非常奇怪。有人能给我提供一个简单的代码片段吗?Thx应该是

function func1(aaa, bbb)  { ... }

下面是一个简单的例子:

确保使用
函数定义函数。然后,当您想从jQuery中调用它时

点击我!
选这个!
功能func1(aaa、bbb)
{ 
警报('您单击的DIV显示:“+aaa.innerHTML+”和“+bbb”);
};          
$('div')。单击(函数()
{
func1(这个“没关系”);
});

如果您只想传递
$(this)
,则不需要该参数,因为它将在定义的函数中可用

$('#some_id').click(func1);
但是,不能像这样添加参数:

$('#some_id').click(func1($this));
$('#some_id').click(func1(param1, param2));
然后,对于函数定义,您只需要

function func1() { }
如果您想要的参数不是$(this),则需要执行以下操作:

$('#some_id').click(function () {
    func1(aaa, bbb); });

你不能像
$('some#u id')那样做。单击(func1($this))因为
。单击(处理程序(事件对象))
定义。。。如果您这样调用它,
func1($this)
中的
$this
应作为
eventObject

为此,您可以使用和

例如

function sum(event) {
   alert(event.data.x + event.data.y);
   // `this` here would refer to the element calling this function
   // for example, $(this).attr('id') would return `someID` if called below
}
称之为

$('#someID').bind('click',{x:4, y:5}, sum);

我假设您正在尝试确保
仍然引用接收事件的元素

试试看:


编辑:


如果您只想引用单击的元素,那么请参见@phoffer的第一个解决方案。

在Javascript中,不能同时分配函数和传递参数。使用匿名函数

$('#some_id').click(function() {
  var arg1 = $(this);
  var arg2 = 'whatever';

  return func1(arg1, arg2);
});
如果您需要的唯一参数是
,请指定函数引用

$('#some_id').click(func1);

当你在这里的时候,请不要忘记接受正确的答案。。干杯:)请参阅:
this
的值在您这样调用
func1
时不会引用该元素。@patrick,我希望您不是指
$(“#某些id”)。单击(func1)原因是…@Reigel-我应该更清楚。当我说“像那样调用
func1
时”,我的意思是在上一个示例中从匿名函数内部调用它。我认为第一个例子是传递
func1
。它确实有效,我正在我的一个项目中使用它。请尝试放置名称、类、id等属性,然后尝试通过
$(this.attr('name')
在函数中访问它,我保证它会工作。编辑:我明白你的答案是什么意思。我不认为我们中的任何人都确切地知道海报想要做什么,但我打赌他想传递元素属性,因为实际上没有什么东西可以传递,因为他可以直接访问变量。很清楚,
这个
不会指代上一个示例中接收事件的元素。首先会的。我不知道返回那里的最佳用途是什么。。。我猜返回true还是false?返回
false
将取消单击事件。当您需要进行验证(防止重定向)时非常有用。我同意这取决于OP打算做什么。不幸的是,他似乎忘记了回来。@phoffer-是的,这种情况太频繁了。一群人渴望帮助,但没有互动。可能不习惯这么快就得到答案。你说得对。如果我问一个问题,我想做的是确保下一个小时我有空,只是为了互动。当大家一起工作的时候,这个网站简直太棒了。我很抱歉。我不习惯快速得到回复,下次我会问问题,并密切关注帖子。谢谢你的帮助;)@GoTTimw-没问题o) 这是一个非常独特的网站。你通常会在几分钟内得到答案。
$('#some_id').click(func1);