не срабатывают on и .toArray()
Здравствуйте.
Пожалуйста, помогите разобраться со следующими моментами. На странице имеется элемент <input type="button" value="send" id="myButton"> Обработчик события нажатия на него: $(document).ready(function(){ $("#myButton").bind('click', function (e) { var a = $('some_selector').toArray(); ... } } Проблема 1: Ответ Firefox на запуск скрипта: TypeError: $(...).toArray is not a function (если это имеет значение, то в массив пакуются выбранные пользователем в таблице строки). Проблема 2: Если вместо bind() стоит on() - не реагирует вообще (с этой проблемой сталкиваюсь не впервой, оставляю bind, знаю, что устарел). |
autumn,
сделайте тестовый пример в песочнице или тут иначе можно только гадать |
Хм, нашла , в чем проблема была. Вот тестовый пример (который не работает)
<script type='text/javascript' src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#myButton").bind('click', function (e) { var a = $('td input:checked').toArray(); console.log(a); }); } ); </script> <table> <tr> <td> <input type='checkbox' name='contacts[]' id='cb1' value='12345'> <label for='cb1'></label> </td> <td>1</td> <td>2</td> <td>3</td> <td> <input type='button' value='edit' onclick="Update();"> </td> </tr> <tr> <td> <input type='checkbox' name='contacts[]' id='cb2' value='12345'> <label for='cb2'></label> </td> <td>1</td> <td>2</td> <td>3</td> <td> <input type='button' value='edit' onclick="Update();"> </td> </tr> <tr> <td> <input type='checkbox' name='contacts[]' id='cb3' value='12345'> <label for='cb3'></label> </td> <td>1</td> <td>2</td> <td>3</td> <td> <input type='button' value='edit' onclick="Update();"> </td> </tr> </table> <input type="button" value="send" id="myButton"> Если подключить библиотеку ajax после подключения библиотеки jquery, то не работают ни on, ни toArray() (а, например, val() работает). А если подключить сначала ajax, а потом jquery и собственно исполняющий скрипт - всё в порядке. Хотелось бы знать для общего развития, почему это так. Заранее спасибо. |
Потому, что вы подключаете два раза одну и ту же библиотеку. Но разных версий.
Там где "jquery" там 1.11 Там где "ajax" там 1.3 (тот же jquery) Оставьте только 1.11 |
code.jquery.com - это не CDN, не стоит подключать оттуда файлы. А в свете последних событий (jquery.com недавно был атакован злоумышленниками) - вообще нельзя. Кроме того, подключать последнюю версию (jquery-latest) - недальновидное решение. При выпуске очередной версии ваш код может просто перестать работать.
ajax.googleapis.com - вот отсюда можно. http://ajax.googleapis.com/ajax/libs.../jquery.min.js |
Убрала jquery.com, остался только ajax.googleapis.com, и теперь ничего не работает, те же проблемы, с которыми я сюда обратилась...
|
Ну я ведь написал какой скрипт нужно подключить :cray:
|
Спасибо, действительно, 1.11.1 работает.
|
Часовой пояс GMT +3, время: 11:04. |