0

我遇到的问题是我想在其中点击父 ID。当我有一堆 div 时,问题就来了,如下所示:

<div id="files">
<div id="F1"><span>Label</span></div>
<div id="F2"><span>Label</span></div>
<div id="F3"><span>Label</span></div>
<div id="F4"><span>Label</span></div>
</div>

我有这样的脚本,如果我单击 F# div 区域,它将引用其父级文件,但如果我要单击标签跨度,它将返回其 ID 为 F# 的父级。我基本上需要它,如果在文件 div 中有点击,即使没有显示该 div 的暴露区域,我也可以获得 id。

我使用的 jquery 是这样的:

$(window).load(function(){

    $(document).bind("contextmenu", function(event) { 
        event.preventDefault();

        var pid = event.target.parentNode.id;
        var id = event.target.id;
        //$(pid).val().substring(0,4)
        $(this).parent();
        //alert((pid).val().substring(0,4));
        var pid = (pid).substring(0,6);    

        if(pid === "files" || pid === "filess" || pid === "folder"){
             $("<div class='custom-menu'>
                  <a onclick='fileHide()'>Open</a>
                  <br/>
                  <a onclick='newFile()'>Rename</a>
                  <br/>
                  <a href='#'>Share Folder</a>
                  <br/>
                  <a onclick='deleteFile(\""+ id +"\")'>Delete</a>
                </div>").appendTo("body")
                        .css({top: event.pageY + "px", left: event.pageX + "px"});
        }else{
             $("<div class='custom-menu'>
                  <a onclick='fileHide()'>Upload</a>
                  <br/>
                  <a onclick='newFile()'>New Folder</a>
                  <br/><a href='#'>Share Folders</a>
                  <br/><a href='#'>Deleted files</a>
                </div>").appendTo("body")
                        .css({top: event.pageY + "px", left: event.pageX + "px"});
        }

    }).bind("mouseup", function(event) {
        $("div.custom-menu").hide();
    });            
});
4

1 回答 1

1

像这样试试

$(this).parent();

对于每次点击元素调用this,它将直接给出所选(点击)元素的父级

要知道它的 id 然后尝试

var parent_id = $(this).parent().attr('id');
alert(parent_id);
于 2013-05-25T04:17:20.177 回答