Основываясь на комментарий в вашем вопросе, я предполагаю, что у вас есть что-то подобное в вашем HTML:
<a href="#" onclick="repost_submit(5);">copy post</a>
И я также предполагаю, что, поскольку вы передаете идентификатор поста может быть более одного на страницу.
Часть красоты jQuery заключается в том, что вы можете делать действительно классные вещи наборы элементов без использования встроенных событий Javascript. В настоящее время они считаются плохой практикой, так как лучше всего отделить Javascript от вашего кода презентации.
Правильный путь, то должен был бы сделать что-то вроде этого:
<a href="#" id='copy-5' class='copy_link'>copy post</a>
И тогда вы можете иметь много других, которые выглядят одинаково:
<a href="#" id='copy-5' class='copy_link'>copy post</a>
<a href="#" id='copy-6' class='copy_link'>copy post</a>
<a href="#" id='copy-7' class='copy_link'>copy post</a>
Наконец, вы можете написать код jQuery, чтобы сделать что-то вроде этого:
$(function() { // wait for the DOM to be ready
$('a.copy_link').click(function() { // whenever a copy link is clicked...
var id = this.id.split('-').pop(); // get the id of the post
var str = $('#repost_msg-' + id); // span not required, since it is an ID lookup
$('#cat_post_box').val(str); // empty not required, and val() is the proper way to change the value of an input element (even textareas)
return false;
});
});
Это лучший способ сделать это, даже если есть только одно сообщение в страница. Часть проблемы с вашим кодом заключается в том, что при первом нажатии она BINDS выполняет функцию, а в последующих кликах - когда она наконец вызывается. Вы можете пойти на быстрое и грязное исправление, изменив это, чтобы просто быть в документе.
О, также, postID передается через onclick в теге – Schoffelman