передавая $ (this) с помощью «var _this»

0

Получил его код, легкая задача:

1.Щелкните элемент списка 2.get элементов списка 3.put во входе 4. замените их вручную 5. Сохраните их обратно в элемент списка за клик

После нажатия нескольких элементов списка и сохранения их значения также изменяются для всех элементов списка, которые были ранее добавлены.

Кажется, что "_this" сохраняет все соединения.

Любая идея, как сделать эту работу? Большое спасибо!

<ul id="foo">
    <li>
        <a href="#" class="bar"></a>
        <span class="name">Name1</span>
    </li>
    <li>
        <a href="#" class="bar"></a>
        <span class="name">Name2</span>
    </li>
    <li>
        <a href="#" class="bar"></a>
        <span class="name">Name3</span>
    </li>
</ul>

<input id="editName">
<a id="save"></a>


$("#foo").on('click', '.bar', function() {      

    _this = $(this);
    edit(_this);
    });

function edit(_this) {

    var name = _this.parent().children(".name").text();
    $("#editName").val(name);

    $("#save").click( function() {
        _this.parent().find(".name").text(  $("#edit input#editName").val()  );
        });

    };
  • 2
    Вы находите по имени класса, что повлияет на каждый класс .name
Теги:
this

1 ответ

1
Лучший ответ

каждый раз, когда вы редактируете (_this), вы связываете нового делегата и после того, как скажете, что 3 раза этот метод вызывается... В следующий раз, когда вы нажмете "#save", вы получите три разных вызова этого делегата. для этого вы можете добавить переменную, которая получит значение this и удерживает его:

var _thisglobal='';

выйдите из функции biding (_this) и используйте глобальное значение _thisglobal вместо _this:

function edit(_this) {
    _thisglobal=_this;
    var name = _this.parent().children(".name").text();
    $("#editName").val(name);



    }; 

$("#save").click( function() {
        _thisglobal.parent().find(".name").text(  $("#edit input#editName").val()  );
        });
  • 0
    Вау, это работает - спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню