Я пытаюсь щелкнуть по ссылкам, чтобы заполнить поле ввода, потому что тег "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">
<div class="my_list">
<div class="list">
<div id="list-wrapper">
<p class="tag"> Name 1</p>
<p class="tag"> Name 2</p>
<p class="tag"> Name 3</p>
<p class="tag"> Name 4</p>
<p class="tag"> Name 5</p>
</div>
</div>
<div class="showme">
<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>
Спасибо!
Ваш 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;
});
$(document).on("click", "p.tag", function(){...});
так как он использовал .live
.
.live
устарела.