Как динамически получать ссылки href и добавлять их к элементу HTML, используя jQuery? - PullRequest
1 голос
/ 21 января 2020

Я использую Sharepoint Designer, и HTML генерируется автоматически. Теперь он работает так, что кликабелен только тег, а div вокруг него - нет.

<ul class="dfwp-list">
  <li>
    <div class="item" style="cursor: pointer;">
      <div class="image-area-left">
        <a href="/Agencies/accounting/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/file-invoice-dollar.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/accounting/Pages/default.aspx" title="Accounting Division">Accounting
          Division</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item" style="cursor: pointer;">
      <div class="image-area-left">
        <a href="/Agencies/air/Pages/default.aspx"><img class="image" src="/Agencies/PublishingImages/wind.svg"
            title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/air/Pages/default.aspx" title="Air Quality Program">Air Quality
          Program</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/aviation/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/plane-departure.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/aviation/Pages/default.aspx" title="Aviation Department">Aviation
          Department</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item" style="cursor: pointer;">
      <div class="image-area-left">
        <a href="/Agencies/healthcare/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/building.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/healthcare/Pages/default.aspx"
          title="Broward Addiction &amp; Recovery Center">Broward Addiction &amp; Recovery Center</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/budget"><img class="image" src="/Agencies/PublishingImages/money-bill-alt.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/budget" title="Budget &amp; Management">Budget &amp; Management</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/callcenter/Pages/default.aspx"><img class="image" src="/Agencies/PublishingImages/phone.svg"
            title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/callcenter/Pages/default.aspx" title="Call Center">Call Center</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/construction/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/toolbox.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/construction/Pages/default.aspx"
          title="Construction Management Division">Construction Management Division</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/administrator/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/folder-open.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/administrator/Pages/default.aspx"
          title="County Administrator's Office">County Administrator's Office</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/econdev/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/chart-area.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/econdev/Pages/default.aspx"
          title="Economic &amp; Small Business Dev.">Economic &amp; Small Business Dev.</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/eldervets/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/handshake.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/eldervets/Pages/default.aspx"
          title="Elderly &amp; Veteran's Services Division">Elderly &amp; Veteran's Services Division</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/EmergencyManagement/Pages/default.aspx"><img class="image"
            src="/Agencies/PublishingImages/ambulance.svg" title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/EmergencyManagement/Pages/default.aspx"
          title="Emergency Management">Emergency Management</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
  <li>
    <div class="item">
      <div class="image-area-left">
        <a href="/Agencies/EAP/Pages/default.aspx"><img class="image" src="/Agencies/PublishingImages/user.svg"
            title=""></a>
      </div>
      <div class="link-item"><a href="/Agencies/EAP/Pages/default.aspx" title="Employee Assistance Program">Employee
          Assistance Program</a>
        <div class="description"></div>
      </div>
    </div>
  </li>
</ul>

Я создаю код, который получает ссылку на элемент, по которому щелкнули, и направляет пользователя на страницу при нажатии. Но происходит следующее: когда я нажимаю, он отправляет меня на ту же страницу, а не на URL, который относится к событию, по которому щелкнули.

$(".item").hover(function(){
    $(this).css('cursor', 'pointer');
});
$(".item").click(function(event) {
    var href = $('.item a').attr('href');
    window.location = href;
    event.preventDefault();
});

1 Ответ

1 голос
/ 21 января 2020

Попробуйте это

$(".item").hover(function(){
    $(this).css('cursor', 'pointer');
});
$(".item").click(function(event) {
    var href = $(this).find('a').attr('href');
    window.location = href;
    event.preventDefault();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...