代码之家  ›  专栏  ›  技术社区  ›  user2828442

所选的父div的边框轮廓事件.目标

  •  0
  • user2828442  · 技术社区  · 7 年前

    我想给周围画个轮廓 event.target

    // when we're about to show the context menu, show our own instead
    $(document).on("contextmenu", function(event) {
      // Avoid the real one if this is the link
      if ($(event.target).hasClass("sim-row-edit")) {
    	  console.log("right click identified");
    $(event.target).parent().css("border", "1px solid red");
        event.preventDefault();
    	clicked_link = $(event.target).text();
    	clicked_url = $(event.target).attr("href");
    	clicked_id = $(event.target).attr("id");
    	
    	
    	
    	//alert(clicked_link);
        // Show contextmenu
        $(".custom-menu").show(100).
        css({
          top: event.pageY + "px",
          left: event.pageX + "px"
        });
      }
    });
    
    // hide our context menu when the document is clicked
    $(document).on("mouseup", function() {
      $(".custom-menu").hide(100);
    });
    
    $(".custom-menu li").click(function() {
      //alert("hii2");
      // This is the triggered action name
      switch ($(this).attr("data-action")) {
        // A case for each action. Should personalize to your actions
        case "first":
         // console.log("first");
    	   console.log("-----");
    	   console.log(clicked_link);
    	   console.log(clicked_url);
    	   console.log(clicked_id);
    	   
    	
    	  //console.log($(this).parent().text());
          break;
        case "second":
          console.log("second");
          break;
        case "third":
          console.log("third");
          break;
      }
    });
    .custom-menu {
      display: none;
      z-index: 1000;
      position: absolute;
      background-color: #fff;
      border: 1px solid #ddd;
      overflow: hidden;
      width: 120px;
      white-space: nowrap;
      font-family: sans-serif;
      -webkit-box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
      -moz-box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
      box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
    }
    
    .custom-menu li {
      padding: 5px 10px;
    }
    
    .custom-menu li:hover {
      background-color: #4679BD;
      cursor: pointer;
    }
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
    	<link href="style.css" rel="stylesheet" type="text/css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
        <title>title</title>
      </head>
      <body>
      
      <div>
      Lorem Ipsum..
      
      <a href="http://goo.com" id="id-goo" class="sim-row-edit" data-type="link">right click on me and my parent div should get a border line</a>
      </div>
       
       <div class="sim-row-edit">
       <a href="http://voo.com" id="id-voo"  data-type="link">voo</a>
       </div>
       
    <ul class='custom-menu'>
      <li data-action = "first">Get Name</li>
      <li data-action = "second">Second thing</li>
      <li data-action = "third">Third thing</li>
    </ul>
    
    <script type="text/javascript" src="script.js"></script>
      </body>
    </html>
    2 回复  |  直到 7 年前
        1
  •  1
  •   Chandru    7 年前

    你可以用

    $(event.target).parent().addClass("selected"); 
    

    向父对象添加边框。

    .selected {
      border: 1px solid red;
    }
    

    // hide our context menu when the document is clicked
    $(document).on("mouseup", function() {
      $(".custom-menu").hide(100);
      $(".selected").removeClass("selected");
    });
    
        2
  •  0
  •   Anki    7 年前

    .closest(selector) 方法 jQuery

    $(event.target).closest('div').css("border", "1px solid red")