Другим сценарием является то, что вы нанесли нулевой объект в тип значения . Например, код ниже:
object o = null;
DateTime d = (DateTime)o;
Он выкинет NullReferenceException
в роли. В приведенном выше примере это кажется совершенно очевидным, но это может произойти в более «поздних связующих» сложных сценариях, где нулевой объект был возвращен из некоторого кода, которого вы не являетесь, и приведение, например, генерируется некоторой автоматической системой.
Одним из примеров этого является этот простой фрагмент привязки ASP.NET с элементом управления календарем:
" />
Здесь SelectedDate
на самом деле является свойством - типа DateTime
- типа Calendar
Web Control, и привязка может отлично вернуть что-то null. Неявный генератор ASP.NET создаст кусок кода, который будет эквивалентен приведенному выше методу. И это поднимет NullReferenceException
, что довольно сложно определить, потому что он лежит в сгенерированном ASP.NET коде, который компилирует отлично ...
Потеряв много часов, я наткнулся на это!
Он переводит события события в виде кликов. Не забудьте загрузить скрипт после jquery.
Я получил эту работу на iPad и iPhone
$('#movable').draggable({containment: "parent"});
Этот проект на github может быть вашим решением
jQuery ui 1.9 позаботится об этом для вас. Здесь представлена демонстрация пре:
https://dl.dropbox.com/u/3872624/lab/touch/index.html
Просто возьмите jquery.mouse.ui.js вне, вставьте его под загружаемый файл jQuery ui, и это все, что вам нужно сделать! Работает также для сортировки.
Этот код отлично работает для меня, но если вы получаете ошибки, обновленную версию jquery.mouse.ui.js можно найти здесь:
Jquery-ui sortable не работает на сенсорных устройствах на базе Android или IOS
.touch({ animate: false, sticky: false, dragx: true, dragy: true, rotate: false, resort: true, scale: false });
с моим существующим вызовом draggable()
, и это работает! Я все еще должен разобрать все события, которые я хочу иметь, чтобы получить рабочий процесс правильно, но плагин jQuery touch сделал трюк!
– artlung
16 June 2010 в 01:26
Вчера я боролся с подобной проблемой. У меня уже было «рабочее» решение с использованием jQuery UI, перетаскиваемого вместе с jQuery Touch Punch, о котором говорится в других ответах. Однако использование этого метода вызывало странные ошибки на некоторых устройствах Android для меня, поэтому я решил написать небольшой плагин jQuery, который может перетаскивать HTML-элементы с помощью событий касания вместо использования метода, который эмулирует поддельные события мыши.
Результатом этого является jQuery Draggable Touch , который является простым плагином jQuery для создания элементов draggable, который имеет сенсорные устройства, поскольку это основная цель, используя события касания (например, touchstart, touchmove, touchhend, и т.д.). Он по-прежнему имеет резерв, который использует события мыши, если браузер / устройство не поддерживает события касания.
Вы можете попробовать использовать jquery.pep.js:
jquery.pep.js - это легкий плагин jQuery, который превращает любой элемент DOM в объект перетаскивания. Он работает в основном во всех браузерах, от старого до нового, от касания до щелчка. Я построил его, чтобы удовлетворить потребность, в которой перетаскиваемый интерфейс jQuery UI не выполнялся, поскольку он не работал на сенсорных устройствах (без хакерства).
Этот проект должен быть полезен - отображает события касания, чтобы щелкнуть события таким образом, чтобы пользовательский интерфейс jQuery работал на iPad и iPhone без каких-либо изменений. Просто добавьте JS в любой существующий проект.