2013-03-04 2 views
0

Я работаю над своим сценарием, чтобы показать какое-то видео, когда вы «onmouseover» на моем div. Из-за IE я использую функцию jquery, которая вызывает mouseenter, но ничего не происходит.jquery .on метод не работает

Мой сценарий:

jQuery.fn.PlayMovieHome = function() { 
    alert("something"); 
    var co = $(this).children("a").children("img").attr("src").split('images/')[1].split('.')[0]; 
    var odkaz = $(this).children("a").attr("href"); 
    $(this).children("a").after("<div id='video' style='position:absolute;width:163px;height:123px;top:5px;'><embed type='application/x-shockwave-flash' src='http://pacogames.com/games/videos/" + co + ".swf' width='163' height='123' wmode='transparent'></embed><a href='" + odkaz + "'><img src='http://pacogames.com/images/163x123.gif' style='position:absolute;left:0px;width:163px;height:123px;top:5px;'></a></div>"); 
}; 

jQuery.fn.StopMovieHome = function() { 
    $(this).children('#video').remove(); 
}; 

И:

$("div#games").on('mouseenter', '.videobox', function() { 
    var element = $(this); 
    $(element).data('timeouthra', setTimeout(function() { 
     $(element).PlayMovieHome(); 
    }, 250)); 
}); 

$("div#games").on('mouseleave', '.videobox', function() { 
    var element = $(this); 
    clearTimeout($(element).data('timeouthra')); 
    $(this).StopMovieHome(); 
}); 

И HTML выглядит следующим образом:

<div id="games"> 
    <li id="videobox-id" class="videobox"> 
    <a href="/games/nascar.swf">  
    <img class="BOXGAMES_IMG" src="./images/nascar.png" alt="play nascar" style="position: relative; z-index: 1;" /><br />Nascar Racing 
    </a> 
    </li> 
</div> 

Это не работают. кто-нибудь знает почему? что мне не хватает?

+0

Вероятно, не связанный, но в вашем HTML вы, кажется, есть LI, без родительского UL элемента. Недействительный HTML. Кроме того, ваш афопроф и полуколония в вашем HTML. –

+0

Я думаю, вы должны использовать var element = $ (this), а затем $ (element), элемент уже является объектом jQuery – pdjota

+0

У меня есть элемент UL, это только усеченная запись. А апостроф и полуколония - это только религия моего php-эха. –

ответ

1

Попробуйте это:

$("div#games").on('mouseenter', '.videobox', function() { 
    var element = $(this); 
    element.data('timeouthra', setTimeout(function() { 
     element.PlayMovieHome(); 
    }, 250)); 
}); 

$("div#games").on('mouseleave', '.videobox', function() { 
    var element = $(this); 
    clearTimeout(element.data('timeouthra')); 
    element.StopMovieHome(); 
}); 
+0

Это что-то меняет? насколько я знаю, если вы передаете объект jQuery, он просто возвращает тот же объект и ничего не должен менять. –

+0

Ничего не случилось. Это реальный образец: http://pacogames.com/ Игры в категории (немного вниз) должны показывать видео, когда вы над ними. Но все равно ничего. –

+0

Проблема с этим onmouseneter, потому что предупреждение («что-то») в playmoviehome не работает. –

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