2013-07-04 2 views
-1

Извините, но я совершенно новый для jQuery. Интересно, в чем разница между этими двумя строками? Я изо все сил совсем немного, потому что решение с находкой сделал постбэк страницы ...

$find("<%=PopupInputPanelOkCancel1.FocusId%>").focus(); 
$("#<%=PopupInputPanelOkCancel1.FocusId%>").focus(); 

Я думаю, что $ находка возвращает объект HTML и $ возвращают объект JQuery или что-то подобное, но Я не понимаю, почему первый запускает обратную передачу ... Только вторая версия действительно устанавливает фокус на поле.

+0

http://stackoverflow.com/questions/1849266/asp-net-ajax-find-jquery-equivalent –

ответ

2

Первый не действительный jQuery; второй - действительный jQuery.

Пояснение:

Действительный объект JQuery формируется путем обертывания $() вокруг селектора. .focus() - это метод объекта jQuery. Таким образом, второй оператор действителен jQuery.

.find() также является методом объекта jQuery, поэтому что-то вроде $('#id').find('.class').focus() допустимо jQuery, но ваше первое утверждение не имеет смысла в jQuery.

+0

Я не согласен с вами на 100% о том, что первое утверждение не имеет смысла. Я использовал следующий код, чтобы показать AjaxControlToolkit.ModalPopupExtender, как это. 'var modal = $ find (modalBehaviorId); if (modal! = Null) { \t modal.show(); } 'Как @Brian Mains говорит в ссылке ([link] (http://stackoverflow.com/questions/1849266/asp-net-ajax-find-jquery-equivalent)):« Microsoft создала $ find as способ связать свои компоненты ASP.NET AJAX с DOM ». Так что это недействительно jQuery, но он по-прежнему действительный код, если вы используете ASP.NET. – Adrian

+0

Благодарим вас за объяснение. Я не знал об этом, так как никогда не использовал ASP.NET. Я отредактировал свой вопрос, чтобы отразить, что утверждение бесполезно в контексте jQuery. –