Я вижу, что другие опубликовали некоторые очень работающие решения, основанные на .live
, но я решил, что все равно добавлю свое решение,
Во-первых, я бы предложил немного изменить разметку, еслиВы можете, например, так:
<div class="sublike-box">
<a class="sublike-btn">Like</a>
<div class="sublike-form"><input type="text" /> Save</div>
</div>
<div class="sublike-box">
<a class="sublike-btn">Like</a>
<div class="sublike-form"><input type="text" /> Save</div>
</div>
<div class="sublike-box">
<a class="sublike-btn">Like</a>
<div class="sublike-form"><input type="text" /> Save</div>
</div>
Это дает более читаемую и семантическую структуру для разметки, облегчая чтение и отслеживание.
Далее, для кода, I настоятельно поощряйте использование .delegate
метода вместо .live
.
$('div.sublike-box').delegate('a.sublike-btn', 'click', function (e) {
$(this).next('div.sublike-form').toggle();
});
должно сработать.