Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 - Fatal编程技术网

Jquery 单击选择元素

Jquery 单击选择元素,jquery,Jquery,我在使用.delegate方法选择正确的元素时遇到问题 <div><span>Some element</span></div> 某个元素 即使通过span标记引发click事件,我也需要选择div元素。任何想法,我如何通过span元素到达div 好的-我看不清楚,所以我试着再次解释: 我有一个主分区。这是所有事件都应该捕获和处理的区域。每个“点击”、“按键向下”和“按键向上”事件都应该由主DIV内的第二级触发。第二级是其他DIV的列表 <

我在使用.delegate方法选择正确的元素时遇到问题

<div><span>Some element</span></div>
某个元素
即使通过span标记引发click事件,我也需要选择div元素。任何想法,我如何通过span元素到达div

好的-我看不清楚,所以我试着再次解释: 我有一个主分区。这是所有事件都应该捕获和处理的区域。每个“点击”、“按键向下”和“按键向上”事件都应该由主DIV内的第二级触发。第二级是其他DIV的列表

<div id="outline">
  <div id="1"><span>Some Text <img src="could/be/picture" /></span></div>
  <div id="2"><span>Some Text <ul><li>Could</li><li>Be</li><li>List</li></ul></span></div>
  <div id="3"><span>Some Text <a href="#">Even a link</a></span></div>
</div>

一些文本
一些文本可以是列表
一些文本

正如你所看到的,几乎所有的东西都在这些div里面。我需要让他们都不能触发事件。方法:单击IMG或UL>LI或A,从参考底图分区生成事件…(因为它们不存在或不被事件禁用)

在回调函数中,
将引用
元素。您感兴趣的
元素是
元素的父元素,因此请使用jQuery函数,如下所示:

$(this).parent();
如果你这样做

$('div').delegate("span", "click", function(){
    var div = $(this).parent();
     //div is the div
});
如果事件位于范围上

$('span').click(function(e){
   var div = $(this).parent();
   //You could also use var div = $(this).closest('div'); which works also if the
   //div is not the direct parent of the span
});

到现在为止,一直都还不错。但是可以单击DIV和/或SPAN,我不知道我要选择的DIV中嵌套了多少级别的其他元素。@David Post问题中的代码?如果对回调使用相同的函数,不管单击了哪个元素,都需要检查节点类型——如果是div,那么您已经拥有了所需的元素;如果它是一个跨度,则需要遍历DOM以获取元素。以下是我的代码:。委托(这是“click.outline”,函数(e){select_item(e);})。。和。。var select_item=function(e){$selection=$(e.target);set_selection_highlight();};对不起,我不知道如何使这篇文章的语法高亮显示,但这并不是我所需要的。请看一看上面的代码示例。