Исправлено положение фона в IE - PullRequest
13 голосов
/ 27 февраля 2009

Я получаю эту проблему в IE7 при запуске фрагмента кода, который использует jquery и 2 плагина jquery. Код работает в FF3 и Chrome.

Полная ошибка:

Line: 33 
Char: 6 
Error: bg is null or not an object 
Code: 0 
URL: http://localhost/index2.html

Однако строка 33 - это пустая строка.

Я использую 2 плагина: перетаскиваемый и масштабируемый. Что бы я ни делал с кодом, виновата всегда строка 33. Я проверяю, что источник обновляется через источник просмотра, но я чувствую, что это может быть неправдой для меня

<body>
<div id="zoom" class="zoom"></div>
<div id="draggable" class="main_internal"><img src="tiles/mapSpain-smaller.jpg" alt=""></div>

<script type="text/javascript">
$(document).ready(function() {
    $('#draggable').drag();
    $('#zoom').zoom({target_div:"draggable", zoom_images:new Array('tiles/mapSpain-smaller.jpg', 'tiles/mapSpain.jpg') });
});
</script>

</body>

По сути, я пытаюсь воссоздать демонстрацию карты Pragmatic Ajax с помощью jQuery.


Может показаться, что вторая строка этого фрагмента вызывает проблемы:

bg = $(this).css('background-position');                    
if(bg.indexOf('%')>1){

Кажется, вы пытаетесь выбрать свойство background-position для #draggable и не находите его? Добавление background-position: 0 0; вручную не помогло. Любые идеи о том, как обойти эту проблему?

Я пытался использовать MS Script Debugger, но это почти бесполезно. Невозможно проверить переменные или что-либо еще.

Ответы [ 11 ]

0 голосов
/ 28 февраля 2009

попробуйте backgroundPosition istead

Также убедитесь, что 'this' существует и что ваш запрос атрибута возвращает значение. IE будет выдавать ошибки такого рода, когда вы попытаетесь вызвать метод для несуществующего свойства, поэтому bg имеет значение null или null для объекта. если вас не волнует IE, вы можете сделать bg = $ (this) ... || '' так что всегда есть что-то, на что ссылаются.

Кроме того, не связано с ошибкой, которую вы получаете, но правильное ли значение индекса 1? Вы имели в виду -1?

...