Заполните поле ввода при нажатии на ссылку

0

Я пытаюсь щелкнуть по ссылкам, чтобы заполнить поле ввода, потому что тег "p class=" "был вложен во все те теги" div ", которые я могу заставить его работать. Идея муравья, как я могу это сделать?

<script type="text/javascript">

$('p.tag').live('click', function(e){
$('#tag').val(this.innerHTML);
return false;  
});

<html>
<tr>
<td align="left" width="100%" colspan="0">&nbsp;
<div class="my_list">
<div class="list">
<div id="list-wrapper">
<p class="tag">&nbsp;&nbsp;Name 1</p>
<p class="tag">&nbsp;&nbsp;Name 2</p>
<p class="tag">&nbsp;&nbsp;Name 3</p>
<p class="tag">&nbsp;&nbsp;Name 4</p>
  <p class="tag">&nbsp;&nbsp;Name 5</p>   
</div>
</div>
<div class="showme">&nbsp;&nbsp;
<a class="color" href='' title='Show App' name="all">
 Show 
</a>
</div>
</div>
</td>
</tr>

<tr>
<td><input id="tag" type="text" name="name" value=""></td>
</tr>

</html>

Спасибо!

  • 0
    .live устарела.
Теги:

1 ответ

0

Ваш HTML недопустим, вам нужно обернуть свой код внутри <table> так как <tr> и <td> должны оставаться внутри <table>

Во-вторых, вы должны использовать .on() вместо .live() потому что из руководства по обновлению:

Метод.live() устарел после jQuery 1.7 и был удален в 1.9. Мы рекомендуем обновить код для использования метода.on().

$('p.tag').on('click', function (e) {
    $('#tag').val(this.innerHTML);
    return false;
});

Обновленный скрипт


Если ваши абзацы добавлены динамически, вы можете использовать делегирование событий:

$('body').on("click", "p.tag", function(){
    $('#tag').val(this.innerHTML);
    return false;
});
  • 0
    Я думаю, что это должно быть $(document).on("click", "p.tag", function(){...}); так как он использовал .live .
  • 0
    Нет необходимости использовать делегирование событий здесь, так как его элементы не генерируются динамически.
Показать ещё 4 комментария

Ещё вопросы

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