не срабатывают 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, время: 19:41. |