Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
Javascript 从jquery添加on click时,如何传递正在单击的控件的实例?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 从jquery添加on click时,如何传递正在单击的控件的实例?

Javascript 从jquery添加on click时,如何传递正在单击的控件的实例?,javascript,jquery,html,Javascript,Jquery,Html,我在一个侧边导航栏上工作,在侧边栏中的实际链接周围有一个标签,以提供填充和边框。我希望用户能够单击此标签中的任何位置并转到链接。我写这个函数就是为了: function allowLabelClick(control) { $(control).find('a')[0].click(); } 如果将此内联添加到单个标签的onclick中,并作为参数传递(this),则效果良好。不过,我基本上有100个左右的链接,都是“outerLabel”类的链接,不想手动为每个链接添加onc

我在一个侧边导航栏上工作,在侧边栏中的实际链接周围有一个标签,以提供填充和边框。我希望用户能够单击此标签中的任何位置并转到链接。我写这个函数就是为了:

function allowLabelClick(control) {
        $(control).find('a')[0].click();
}
如果将此内联添加到单个标签的onclick中,并作为参数传递(this),则效果良好。不过,我基本上有100个左右的链接,都是“outerLabel”类的链接,不想手动为每个链接添加onclick。相反,我想用outerLabel类将其添加到所有元素中。为此,我写了这一行:

$('.outerLabel').on("click", allowLabelClick());
在我的javascript中。但是,我不知道在allowLabelClick的参数中传递什么。我希望它是被点击的DOM元素,但是“this”不起作用,我不确定还有什么可以尝试


谢谢使用匿名函数:

$('.outerLabel').on("click", function() { allowLabelClick(this); });

使用匿名函数:

$('.outerLabel').on("click", function() { allowLabelClick(this); });

事实上,你不需要JS。你可以用css解决这个问题

.nav a {
    display: block;
    padding: 10px;
    margin: 10px;
    ...
}

事实上,你不需要JS。你可以用css解决这个问题

.nav a {
    display: block;
    padding: 10px;
    margin: 10px;
    ...
}

以几分之一秒的速度击败我,太棒了,效果很好,一旦允许,我会接受(再多10分钟)。感谢您快速准确的回复。有人能解释为什么这样做,但直接从命名函数传递“this”却不行吗?@stackOverNo你的版本会立即执行
allowLabelClick
,这不是你想要的。比我快几秒钟。真棒,效果很好,一旦允许我(再10分钟)就会接受。感谢您快速准确的回复。有人能解释为什么这样做,但直接从命名函数传递“this”却不行吗?@stackOverNo您的版本会立即执行
allowLabelClick
,这不是您想要的。我认为这是一个更好的答案,而不是用额外的事件触发代码来代替。我认为这是一个更好的答案,而不是用额外的事件触发代码来胡闹。