JavaScript событие IE

Еще один способ реализовать это, создав собственный ScrollViewer, подобный этому:

public class MyScrollViewer : ScrollViewer
{
    protected override void OnMouseWheel(MouseWheelEventArgs e)
    {
        var parentElement = Parent as UIElement;
        if (parentElement != null)
        {
            if ((e.Delta > 0 && VerticalOffset == 0) ||
                (e.Delta < 0 && VerticalOffset == ScrollableHeight))
            {
                e.Handled = true;

                var routedArgs = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
                routedArgs.RoutedEvent = UIElement.MouseWheelEvent;
                parentElement.RaiseEvent(routedArgs);
            }
        }

        base.OnMouseWheel(e);
    }
}
7
задан 6 June 2009 в 20:08
поделиться

4 ответа

Чтобы получить цель события в браузерах, совместимых со стандартами, и в IE, используйте

var target = evt ? evt.target : window.event.srcElement;

В MDC есть обзор различных свойств объектов событий .

15
ответ дан 6 December 2019 в 11:52
поделиться

Вот почему вам следует рассмотреть возможность использования библиотеки javascript, такой как jquery, YUI или prototype. Эти библиотеки абстрагируют различия, связанные с браузером, что упрощает кодирование.

0
ответ дан 6 December 2019 в 11:52
поделиться
  • Когда запускается этот сценарий? Возможно, вам придется запустить этот сценарий onload после полной загрузки DOM
<script>

function go()
{
  alert('dom is loaded:  register event handlers now') ;
}

</script>

<body onload=" go(); ">



</body>

1
ответ дан 6 December 2019 в 11:52
поделиться

Как упоминалось, IE не передает объект события в качестве параметра. Попробуйте следующее:

var form = document.getElementById('theform')
  /* create the event handler */
  form.gen.onclick = function( evt ) {
    if(!evt)
      evt = window.event;
    var f = evt.target.form
    var y = f.year.value
    var m = f.month.value
    genCalendar( document, y, m, 'theCalendar' )
}

Или еще лучше используйте кроссбраузерную библиотеку, например Prototype.js или jQuery .

1
ответ дан 6 December 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: