Я бы создал элемент, используя jQuery, и привязал бы обработчик к тегу привязки одновременно. Если вы поместите тег привязки в элемент div, вы не сможете отобразить элемент div, если вы его спрятали. Так что я прикрепляю якорь рядом с div. Не уверен, что это то, что вы хотите.
for(var i = 0; i < 8; i++) {
var $div = jQuery("<div></div>").attr("id", "eventbox" + i);
var $a = jQuery("<a></a>").attr("id", "anchoreventbox" + i)
.html("Show/Hide")
.click(function() {
var $a = jQuery(this);
var eventboxID = $a.attr("id").replace(/anchor/, "");
jQuery("#" + eventboxID).animate({"height" : "toggle"}, {duration: 1000});
});
jQuery(body).append($div);
$div.after($a);
}
или вместо того, чтобы использовать идентификатор для поиска div, вы также можете использовать parent()
:
for(var i = 0; i < 8; i++) {
var $div = jQuery("<div></div>").attr("id", "eventbox" + i);
var $a = jQuery("<a></a>").attr("id", "anchoreventbox" + i)
.html("Show/Hide")
.click(function() {
jQuery(this).parent().animate({"height" : "toggle"}, {duration: 1000});
});
jQuery(body).append($div);
$div.after($a);
}
РЕДАКТИРОВАТЬ , так что здесь проблема. Вы не можете показать div, когда скрываете его, так как ссылка находится внутри div. Возможно, вы могли бы поставить ссылку за пределами div? Не уверен, что вы пытаетесь достичь здесь.