Вы пробовали следующее?
var myElementId = "#" + $(".change_cont").prev().attr("id");
$("body").on("click", myElementId, function(){
alert("Hello World");
});
Для этого требуется, чтобы элемент имел идентификатор. Если это не так, вы можете использовать класс, я полагаю, если у него есть класс, назначенный ему. Если для этого элемента ничего не назначено, просто назначьте ему id или класс, чем.
Если на предыдущем элементе нет идентификационного класса или идентификатора, почему бы не создать его при создании элемента? В этом случае, вы бы просто добавить класс к ним, а не использовать имя класса вместо атрибута ID:
$(".change_cont").each(function(e){
if (!$(this).prev().hasClass('myClass'))
$(this).prev().addClass('myClass');
});
$("body").on("click", ".myClass", function(){
alert("Hello World");
});
Можете ли вы предоставить свой HTML-код и указать, какие элементы вы пытаетесь настроить? Технически в обычных селекторах вы не можете идти * назад *, но можете идти * вперед *. Таким образом, мы могли бы помочь в каком-то способе '#parent> .first-level .child + .target' способом – ahren
По правде говоря, я всегда хотел использовать его с фактическим элементом, а не Струна! Это всегда казалось мне немного назад! Возможно, однажды это станет возможным. –
@SolomonClosson, если вы говорите о делегированном синтаксисе, как вы можете использовать его с фактическим элементом, который еще не существует? – Alnitak