Basierend auf dem Kommentar in Ihrer Frage, ich gehe davon aus Sie so etwas wie dies in Ihrem HTML haben:
<a href="#" onclick="repost_submit(5);">copy post</a>
Und ich bin auch davon aus, dass, weil Sie eine Post-ID sind vorbei kann es mehr als eins pro Seite.
Ein Teil der Schönheit von jQuery ist, dass Sie wirklich coole Sachen zu Gruppen von Elementen machen können, ohne Javascript-Inline-Ereignisse verwenden zu müssen. Diese werden heute als eine schlechte Praxis angesehen, da es am besten ist, Javascript von Ihrem Präsentationscode zu trennen.
Der richtige Weg, dann wäre, so etwas wie dies zu tun:
<a href="#" id='copy-5' class='copy_link'>copy post</a>
Und dann können Sie viele mehr haben, die ähnlich aussehen:
<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>
Schließlich Sie Code schreiben können jQuery, so etwas zu tun:
$(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;
});
});
Dies ist der beste Weg, es zu tun, auch wenn es nur einen Beitrag gibt Die Seite. Ein Teil des Problems mit Ihrem Code ist, dass beim ersten Klick die Funktion BINDEN wird, und bei den nachfolgenden Klicks, wenn sie schließlich aufgerufen wird. Sie könnten für eine schnelle und schmutzige Reparatur gehen, indem Sie das ändern, um nur in document.ready zu sein.
Oh, auch die Post-ID wird durch einen onclick in einem -Tag übergeben – Schoffelman