> 웹 프론트엔드 > 프런트엔드 Q&A > jquery 트리 URL 제거

jquery 트리 URL 제거

WBOY
풀어 주다: 2023-05-28 17:48:38
원래의
600명이 탐색했습니다.

과거 웹 개발에서는 JavaScript 라이브러리를 활용하려는 요구가 늘었습니다. 그중 jQuery는 John Resig가 만든 빠르고 간결한 JavaScript 라이브러리로 DOM 작업, 이벤트 처리, AJAX 요청 등과 같이 일반적으로 사용되는 많은 기능을 캡슐화합니다. 웹 개발에서는 데이터를 트리 구조로 표시하고 조작해야 하는 경우가 종종 있습니다. 이를 위해 일반적으로 사용되는 도구는 jQuery 트리입니다.

그러나 데이터 표시를 위해 jQuery 트리를 사용할 때 많은 개발자는 사용자의 오작동을 피하기 위해 노드에서 URL 링크를 제거하는 방법에 어려움을 겪습니다. 이 문서에서는 이 기능을 구현하는 방법을 자세히 설명합니다.

1. jQuery 트리 이해

노드의 URL 링크 제거를 시작하기 전에 먼저 jQuery 트리 구조 및 관련 기본 작업을 이해해야 합니다. jQuery 트리는 트리 구조의 데이터를 표시하고 조작하는 데 사용되는 프런트엔드 JavaScript 라이브러리입니다. 예를 들어 jQuery 트리를 사용하여 제품 카테고리, 부서 구조 수준 등과 같은 시나리오에서 트리 모양의 데이터를 표시할 수 있습니다.

일반적으로 노드가 확장된 상태일 때 노드는 사용자가 노드가 나타내는 콘텐츠에 직접 액세스할 수 있도록 URL 링크를 표시합니다. 그러나 일부 실제 프로젝트에서는 사용자가 실수로 노드를 클릭하여 페이지가 점프하고 사용자 경험에 영향을 미치는 것을 방지하기 위해 개발자는 이 URL 링크를 숨겨야 합니다.

2. jQuery 트리 노드 URL 링크를 제거하는 방법

노드 URL 링크를 제거할 때 다음 두 가지 방법을 사용할 수 있습니다.

1. CSS 스타일을 통한 제거

CSS 스타일 설정을 통해 모든 태그(링크)의 href 속성을 빈 문자열로 설정하여 노드 URL 링크를 숨기는 목적을 달성할 수 있습니다. 구체적인 구현 코드는 다음과 같습니다.

$(document).ready(function(){
  $(".tree li:has(ul)").addClass("parent_li");
  $(".tree li.parent_li > span").attr("title", "Collapse this branch");
  $(".tree li.parent_li > span").children("i:first-child").addClass("glyphicon-folder-open");
  $(".tree li.parent_li > span").children("i:first-child").removeClass("glyphicon-folder-close");

  $(".tree li.parent_li > span").on("click", function (e) {
    var children = $(this).parent("li.parent_li").find(" > ul > li");
    if (children.is(":visible")) {
        children.hide("fast");
        $(this).attr("title", "Expand this branch").children("i:first-child").addClass("glyphicon-folder-close").removeClass("glyphicon-folder-open");
    } else {
        children.show("fast");
        $(this).attr("title", "Collapse this branch").children("i:first-child").addClass("glyphicon-folder-open").removeClass("glyphicon-folder-close");
    }
    e.stopPropagation();
  });
  
  //将节点链接URL内容设置为空字符串
  $(".tree a").attr("href", "");
});
로그인 후 복사

위 코드에서는 jQuery 트리의 모든 태그를 꺼내고 해당 태그의 href 속성을 빈 문자열로 설정합니다. 이러한 방식으로 노드 URL 링크를 숨기는 목적을 달성할 수 있습니다.

2. JavaScript 코드를 수정하여 제거

또 다른 구현에서는 JavaScript 코드에서 노드 URL 링크를 직접 제거합니다. 구체적인 구현 코드는 다음과 같습니다.

$(document).ready(function(){
  $(".tree li:has(ul)").addClass("parent_li");
  $(".tree li.parent_li > span").attr("title", "Collapse this branch");
  $(".tree li.parent_li > span").children("i:first-child").addClass("glyphicon-folder-open");
  $(".tree li.parent_li > span").children("i:first-child").removeClass("glyphicon-folder-close");

  $(".tree li.parent_li > span").on("click", function (e) {
    var children = $(this).parent("li.parent_li").find(" > ul > li");
    if (children.is(":visible")) {
        children.hide("fast");
        $(this).attr("title", "Expand this branch").children("i:first-child").addClass("glyphicon-folder-close").removeClass("glyphicon-folder-open");
    } else {
        children.show("fast");
        $(this).attr("title", "Collapse this branch").children("i:first-child").addClass("glyphicon-folder-open").removeClass("glyphicon-folder-close");
    }
    e.stopPropagation();
  });

  //将节点链接URL及其父级节点的URL都设置为空字符串
  $(".tree a").each(function(){
    var node=$(this).parent("li");
    if(node.hasClass("parent_li")){
      $(this).attr("href","javascript:void(0);");
    } else{
      $(this).removeAttr("href");
    }
  });
});
로그인 후 복사

위 코드에서는 jQuery 트리의 각 메소드를 사용하여 모든 태그를 순회하고 상위 노드에 "parent_li" 클래스가 있는지 확인합니다. 그렇다면 노드 URL 링크를 설정합니다. 빈 문자열로. 그렇지 않은 경우 태그에서 href 속성을 직접 제거하세요.

3. 요약

이번 글에서는 jQuery 트리에서 노드의 URL 링크를 제거하는 방법을 소개했습니다. 두 가지 방법으로 실제 필요에 따라 노드 URL 링크를 숨길 수 있습니다. 특히 일부 복잡한 웹 애플리케이션에서는 트리 데이터 구조를 표시해야 하는 경우가 많으며, URL 링크 숨기기와 같은 작업은 개발자가 사용자 경험과 사용자 상호 작용을 개선하는 데 도움이 될 수 있습니다.

위 내용은 jquery 트리 URL 제거의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿