Вопрос о синтаксисе jQuery (получение идентификатора ссылки) - PullRequest
0 голосов
/ 07 декабря 2009

У меня есть серия ссылок, каждая со своим идентификатором:

<li><a id="about" href="#">About</a></li>
<li><a id="call-us" href="#">Contact us</a></li>
<li><a id="home" href="#">Head on home</a></li>

Вместо написания ряда утверждений, подобных этому:

$(document).ready(function(){
    $("a.about").click(function(event){
        $("#content").load("/data.html #about");
    });
    $("a.call-us").click(function(event){
        $("#content").load("/data.html #call-us");
    });
});

Есть ли способ абстрагироваться от того факта, что когда я нажимаю на ссылку с классом "ajax", я беру ее #ID, смотрю на .data.html и извлекаю из data.html div с идентификатором #ID

(Я понимаю, что сейчас это не определяет класс, но давайте просто скажем, что у меня есть 5 якорей типа

<a href="#" class="ajax" id="UNIQUE-ID">Anchor Text</a>

Это наверняка сделало бы код более легким в обслуживании. Любой вклад будет великим.

Ответы [ 2 ]

2 голосов
/ 07 декабря 2009

Да, довольно легко:

$(document).ready(function(){
    $("a.ajax").click(function(e){
        $("#content").load("/data.html #" + this.id);
        e.preventDefault();
    });
});
0 голосов
/ 07 декабря 2009

Вы можете дать каждой ссылке класс следующим образом:

<li><a id="about" href="#" class="ajax">About</a></li>
<li><a id="call-us" href="#" class="ajax">Contact us</a></li>
<li><a id="home" href="#" class="ajax">Head on home</a></li>

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

<ul id="links">
  <li><a id="about" href="#">About</a></li>
  <li><a id="call-us" href="#">Contact us</a></li>
  <li><a id="home" href="#">Head on home</a></li>
</ul>

, а затем

$(function() {
  $("#links a").click(function() {
    $("#content").load("/data.html?id=" + this.id);
    return false;
  });
});

Что касается вашего вызова "/data.html id", я не уверен, что именно является "data.html", но обычно вы хотите передать идентификатор как параметр GET или POST, как я делал выше, но что вам нужно сделать здесь, зависит от того, что именно вы звоните.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...