2013-05-28 2 views
1

Я не могу добавить IE обнаружения без повторения моего кода и изменения одной строки, чтобы он работал с IE 8 ... hoverintent является виновником в этом экземпляре и не работает в IE8> Поэтому я хотел обнаружить чтобы проверить на IE8 и просто использовать «парить» вместо того, чтобы ...jQuery: Сокращение кода для добавления IE-кода?

у меня есть условная шашка, которая работает/обнаруживает ie8 ...

if (!$.support.leadingWhitespace) { 
alert('This is IE8'); 
} 

и это мой полный код ... к примеру на во второй строке у вас есть .hoverIntent (... что нужно будет изменить только на простой .hover для MSIE8 ...

$(document).ready(function() { 
    $('nav li,#mini-menu li').hoverIntent(

function (e) { 
    //show its submenu 
    e.stopPropagation(); 
    $('.sub-nav', this).stop(true,true).slideDown(200); 
    $('.mini-nav', this).show(); 
}, 

function (e) { 
    //hide its submenu 
    e.stopPropagation(); 
    $('.sub-nav,.mini-nav', this).stop(true,true).fadeOut(100);   
} 
); 

Моя проблема заключается в том, что я добавил условный код проверки на все вышеперечисленное, и единственный способ, по-моему, я мог бы сделать это, - это дублирование приведенного выше кода и просто помещение его в условную проверку и изменение .hoverintent на .hover .. .. Итак, прежде чем я это сделаю, я хотел бы спросить, есть ли лучший способ, как я могу вставить условное выражение в существующий код и просто изменить линию ....

Спасибо.

+0

вы можете использовать условное, если включать в себя различные версии файла JS, как вы делаете с таблицами стилей – Pete

ответ

1

Вы могли бы сделать что-то подобное:

var isIE = $.support.leadingWhitespace?false:true; 

//then 

$('nav li,#mini-menu li')[!isIE?'hoverIntent':'hover'](...); 
+0

Вы сделали это !! - Спасибо :) – Codesworth

Смежные вопросы