Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2014, 18:30
Аватар для autumn
Интересующийся
Отправить личное сообщение для autumn Посмотреть профиль Найти все сообщения от autumn
 
Регистрация: 14.10.2014
Сообщений: 15

не срабатывают 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, знаю, что устарел).
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2014, 18:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

autumn,
сделайте тестовый пример в песочнице или тут иначе можно только гадать
Ответить с цитированием
  #3 (permalink)  
Старый 15.10.2014, 11:13
Аватар для autumn
Интересующийся
Отправить личное сообщение для autumn Посмотреть профиль Найти все сообщения от autumn
 
Регистрация: 14.10.2014
Сообщений: 15

Хм, нашла , в чем проблема была. Вот тестовый пример (который не работает)
<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 и собственно исполняющий скрипт - всё в порядке. Хотелось бы знать для общего развития, почему это так. Заранее спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 15.10.2014, 12:00
Аспирант
Отправить личное сообщение для voral Посмотреть профиль Найти все сообщения от voral
 
Регистрация: 03.10.2014
Сообщений: 67

Потому, что вы подключаете два раза одну и ту же библиотеку. Но разных версий.
Там где "jquery" там 1.11
Там где "ajax" там 1.3 (тот же jquery)
Оставьте только 1.11
Ответить с цитированием
  #5 (permalink)  
Старый 15.10.2014, 12:53
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

code.jquery.com - это не CDN, не стоит подключать оттуда файлы. А в свете последних событий (jquery.com недавно был атакован злоумышленниками) - вообще нельзя. Кроме того, подключать последнюю версию (jquery-latest) - недальновидное решение. При выпуске очередной версии ваш код может просто перестать работать.

ajax.googleapis.com - вот отсюда можно.

http://ajax.googleapis.com/ajax/libs.../jquery.min.js
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2014, 12:51
Аватар для autumn
Интересующийся
Отправить личное сообщение для autumn Посмотреть профиль Найти все сообщения от autumn
 
Регистрация: 14.10.2014
Сообщений: 15

Убрала jquery.com, остался только ajax.googleapis.com, и теперь ничего не работает, те же проблемы, с которыми я сюда обратилась...
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2014, 13:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну я ведь написал какой скрипт нужно подключить

Цитата:
http://ajax.googleapis.com/ajax/libs.../jquery.min.js
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 17.10.2014, 15:16
Аватар для autumn
Интересующийся
Отправить личное сообщение для autumn Посмотреть профиль Найти все сообщения от autumn
 
Регистрация: 14.10.2014
Сообщений: 15

Спасибо, действительно, 1.11.1 работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывают события из HTML devastor Events/DOM/Window 9 12.09.2014 15:53
Почему не срабатывают функции? allanmiln AJAX и COMET 1 10.04.2013 22:05
Не срабатывают события в UI datepicker FRIE jQuery 0 10.08.2012 17:10
Не срабатывают стили romantik2011 (X)HTML/CSS 15 06.09.2011 09:55
Не срабатывают события из iframe при перетаскивании в него курсора в Opera jaguar954 Events/DOM/Window 1 01.08.2011 12:17