Объявление функций jQuery снова и снова для установки различных значений на ie7. Есть ли другой способ сделать это? - PullRequest
1 голос
/ 21 января 2010

Ну, у меня есть прокручиваемый плагин, который я использую для перемещения div, когда я нажимаю навигационные якоря. Есть две разные настройки, которые я уже не хотел делать, но я тоже их сделал, так как не знал, как это сделать:

Посмотрите:

var jump=function(e)
{
//the plugin code...
  scrollTop: $(target).offset().top - 110
}

и еще один с другим вычитаемым числом смещения

var jump=function(e)
{
//the plugin code...
  scrollTop: $(target).offset().top - 315
}

Чем я звоню им, используя это:

$('li.sidebarLi a').bind("click", jump2);
$('li.yearsLi a').bind("click", jump);
return false;

Что произошло с ie7, так это то, что по какой-то причудливой причине за пределами воображения окончательная позиция совершенно иная. Поэтому мне пришлось создать if в html для ie7 и снова вызвать эти функции с разными значениями (как для 110, так и для 315).

Таким образом, конечный результат для пользователей ie7 - 2 бесполезных вызова функций и 2 полезных. Я хотел иметь способ сделать это без повторного вызова, возможно, динамический способ изменить это значение, если ie7. И если бы кто-то знал способ сделать это без 2-х функций, лучше бы ему пришлось проверить, есть ли его боковая панель или годы, а затем установить значение для прокрутки.

Надеюсь, кто-нибудь может помочь мне с этим. Приветствия.

1 Ответ

0 голосов
/ 21 января 2010

Попробуйте:

scrollTop: $(target).offset().top - ($.browser.msie && parseInt($.browser.version)==7? 315: 110)

Тем не менее, маловероятно, что эта проблема вызвана только IE7 - я бы посоветовал попытаться вылечить основной симптом, чем поверхностно бросить условные выражения около

...