В вашем примере кода вы привязывали обработчик события click к $('details_img')
, что означает, что вы привязывали его к пользовательскому элементу, например, как если бы ваш HTML содержал <details_img></details_img>
. Я предполагаю, что details_img на самом деле является именем класса или идентификатором.
В вашем примере кода вы также вызывали postImgCar()
после присоединения обработчика события щелчка к details_img, предположительно при загрузке страницы. Если это не то, что вы хотели сделать, тогда, конечно, уберите этот дополнительный звонок.
Если вы хотите, чтобы postImgCar()
выполнялось каждый раз, когда пользователь нажимает details_img, и после того, как атрибут href установлен, сделайте это, если details_img является именем класса :
$('.details_img').click(function(i){
// ...
$(this).closest(".page").find(".car_detail").parent().attr('href', $(this).attr('src'));
posImgCar();
// ...
});
Или это, если details_img , идентификатор :
$('#details_img').click(function(i){
// ...
$(this).closest(".page").find(".car_detail").parent().attr('href', $(this).attr('src'));
posImgCar();
// ...
});
Наконец, если вы используете jQuery 1.6 или новее, рассмотрите возможность использования метода .prop()
вместо .attr()
. См. jQuery API документацию для .prop () для объяснения.