как убрать якорь или добавить их в пустой ul li используя jQuery - PullRequest
0 голосов
/ 03 февраля 2011

Я хочу добавить привязку в li и удалить из другого li, но не знаю, как это можно сделать.Кто-нибудь знает, как это возможно с помощью jQuery?

добавить их в пустых

<li>
<!-- i think to add the anchor here by many attribute --->
</li>

<li>
<!-- this anchor how i can remove -- >
<a></a>
</li>

логика я хочу сделать что-то вроде

, когда событие срабатывает: -

var cur = cur; // current is variable where i store li who i want to do.

как я могу удалить их из него и как я могу добавить, если они действительно не привязаны к ним.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

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

1) Чтобы получить объект jQuery для элемента, используйте $ (он же jQuery) и селектор CSS3:

var $element = $("CSS3_selector_for_element");

2) Чтобы удалить элемент, используйте remove:

$element.remove();

3) Чтобы отсоединить элемент (чтобы вы могли вернуть его позже, не теряя его обработчики событий и т. Д.), Используйте detach:

$element.detach();

4) Чтобы добавить или переместить элемент, используйте append, appendTo, before, insertBefore, after, insertAfter или, возможно, несколько других (если вы перемещаете его откуда-то еще, нет необходимости detach сначала):

$element.appendTo(target);

или

jquery_object_for_target.append($element);

Очень простой пример перемещения li с якорями из одного списка в другой при нажатии на якорь:

HTML:

<ul id='first'>
  <li><a href='#'>Anchor One</a></li>
  <li><a href='#'>Anchor Two</a></li>
  <li><a href='#'>Anchor Three</a></li>
</ul>
<hr>
<ul id='second'>
  <li><a href='#'>Anchor Four</a></li>
  <li><a href='#'>Anchor Five</a></li>
  <li><a href='#'>Anchor Six</a></li>
</ul>

JavaScript с использованием jQuery:

jQuery(function($) {

  $("a").click(function() {
    var $this, li, list, target;

    $this = $(this);
    li = $this.closest('li');
    list = li.closest('ul');
    target = list[0].id == 'first' ? '#second' : '#first';
    $(target).append(li);

    return false;
  });

});​

Живая копия

Если вы предпочитаете не выяснять, где находится li, когда событие впервые, вы можете использовать delegate для просмотра якорей внутри определенного списка (HTML-код такой же, как и выше):

jQuery(function($) {

  $("#first").delegate('a', 'click', function() {
    return moveContainingListItemTo(this, '#second');
  });
  $("#second").delegate('a', 'click', function() {
    return moveContainingListItemTo(this, '#first');
  });

  function moveContainingListItemTo(element, target) {

    $(element).closest('li').appendTo(target);

    return false;
  }

});​

Живая копия

0 голосов
/ 03 февраля 2011

дайте какое-нибудь имя класса тому ли и сделайте что-то вроде этого ...

$('li ').live('click', function () {

 if(!jQuery("li').hasClass('selected')){

            jQuery(this).addClass('selected').append('<a id="anchor">blah...</a>')
    }else{
             jQuery(this).removeClass('selected').find('a').remove();
}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...