HTML :IE jQuery를 문제
<div id="media-photo">
<img src="/uploads/photos/16.jpg" alt="" />
</div>
<a href="/uploads/photos/5.jpg" class="img">
<img src="/uploads/photos-thumbs/5.jpg" alt="" />
</a>
<a href="/uploads/photos/6.jpg" class="img">
<img src="/uploads/photos-thumbs/6.jpg" alt="" />
</a>
JQUERY :
$(document).ready(function() {
$('a.img').click(function() {
var path = $(this).attr('href');
$('#media-photo img').attr('src', path);
return false;
});
});
설명 : 위의 코드는 어떻게해야 당신이 클래스 (앵커 클릭 할 때입니다 무엇
img), # media-photo div의 이미지는 앵커의 href 속성을 기반으로 새 이미지로 변경됩니다 (href는 이미지의 상대 경로이며, 현재 img의 src를 공물).
Firefox에서 잘 작동합니다.
IE (버전 8 특별히, 이전 버전을 아직 테스트하지 않았습니다)에서 앵커를 클릭하면 이미지가 브라우저에서 열립니다.
IE에서이 작업을 수행하는 방법은 무엇입니까?
편집이 :
마침내 {} 확인 함수가 false를 반환하기 위해 시도 {}를 사용하여 문제를 해결 한 (기본 동작을 방지하기 위해). 여기에 전체 jQuery 코드는 (I 크게 관련이없는 물건을 가진 사람을 혼동하지 위를 단순화)된다
if (id != $('#media-photo img').attr('id')) {
id
에서 온 않습니다이 라인에서
$(document).ready(function() {
$('.box-content2 a.img').click(function() {
var path = $(this).attr('href');
var title = $('img', this).attr('alt');
var description = jQuery.trim($(this).attr('title'));
var id = $(this).attr('id');
if (id != $('#media-photo img').attr('id')) {
try {
$('#media-photo img').attr('src', path);
$('#media-photo img').attr('alt', title);
$('#media-photo img').attr('id', id);
$('#content h2:first').text('You Are Viewing "' + title + '"');
$('title').text('You Are Viewing "' + title + '"');
if (description.length > 0) {
$('#content .box-container:first').removeClass('invisible');
$('#content .box-container:first p').text(description);
} else {
$('#content .box-container:first').addClass('invisible');
}
var action = '/view/favoriting-form/id/' + id;
$.get(action, function(data) {
if ($('.favoriting').length > 0) {
$('.favoriting').replaceWith(data);
} else {
$('#actions h3').after(data);
}
});
action = '/view/rating-form/id/' + id;
$.get(action, function(data) {
if ($('.rating').length > 0) {
$('.rating').replaceWith(data);
} else {
if ($('.favoriting').length > 0) {
$('.favoriting').after(data);
} else {
$('#actions h3').after(data);
}
}
$('.star').rating();
});
action = '/view/add-media-comment/id/' + id;
$.get(action, function(data) {
$.getScript('/js/photo.js');
$('#media-comments').html(data);
});
} finally {
return false;
}
}
return false;
});
$('#add_to_favorites').hover(function() {
var id = $('#media-photo img').attr('id');
var action = '/view/photo/id/' + id;
$('.favoriting').attr('action', action);
});
$('#rate-button').hover(function() {
var id = $('#media-photo img').attr('id');
var action = '/view/photo/id/' + id;
$('.rating').attr('action', action);
});
$('a.previous-media, a.next-media').click(function() {
var id = $('#media-photo img').attr('id');
var href = $(this).attr('href');
href = href.split('/');
var p = href[href.length - 1];
var url = '/view/album-photos/id/' + id + '/p/' + p;
$.get(url, function(data) {
$.getScript('/js/photo.js');
$('.box-content2').html(data);
});
return false;
});
$('#media-comments form').submit(function() {
var id = $('#media-photo img').attr('id');
var url = '/view/add-media-comment/id/' + id;
var postData = $(this).serialize() + '&add_comment=Submit';
$.post(url, postData, function(data) {
$.getScript('/js/photo.js');
$('#media-comments').html(data);
});
return false;
});
});
귀하의 단순화 된 예는 IE7에서 나를 위해 작동합니다. 위의 실제 코드를 IE8에서 실행 해 보았습니까? – ScottE
당신의 코드는 호환 모드가 있거나없는 IE8에서 나에게 적합합니다. 그러나 이미지를 img 태그로로드하는 대신 탐색하는 Firefox에서 나에게 적합하지 않습니다. –
나는 이미 try {} finally {} 블록을 사용하여 문제가 해결되었으므로 js에서 문제가 발생하더라도 false를 리턴한다. –