Автор Тема: JQuery получение идентификатора кнопки [решено]  (Прочитано 3100 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
ASte
Надо попробовать...

Прикол, но такой трюк проходит на ура:
function SelectAll() {
$(".btn_control").closest("div")
.find("input[type=button]")
.each(function() {
var subsec = $(this).data("id");
alert(subsec);
$(".rrr").closest("div")
.find("input[type=checkbox]")
.each(function() {
var tmp = $(this).data("id");
alert(tmp);;
$(this).prop("checked", "true");
});
});
}
:-)

Для блока с чекбоксами добавил класс rrr.
Тогда data-id прекрасно выводятся, сейчас на проекте проверю...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
$(".btn_control").closest("div")
   .find("input[type=button]")
   .each(function() {
Чушь написал, так все кнопки опять и перебирает :-)

Как-то так?
Не работает.

В общем работает так:

function SelectAll() {
сюда вставить
}

То есть обернуть ваш вариант. И для кнопки прописать onclick="SelectAll()". По-другому никак не хочет работать. Ошибок в консоли нет никаких.
Но работает странно, во-первых срабатывает при повторном нажатии на кнопку и цикл проходит 6 раз! Смотрел через alert. Но зато всё правильно работает, выделяется что нужно и также снимается выделение.

Есть мысли ещё ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
$(".btn_control") - выбирает все кнопки этого класса в документе
А нужно начинать с той кнопки на которой сработал обработчик, т.е с $(this)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
При первом нажатии Firfox пишет в консоль
Метод getPreventDefault() является устаревшим. Для его замены используйте метод defaultPrevented. jquery-1.9.1.js:3346:0
Сноси Винду, переходи на Линукс ! :)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
Видимо нужно скачать более свежую версию jquery

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Видимо нужно скачать более свежую версию jquery
Может быть... сейчас заметил, разные версии, это норм:
<script src="html/jquery-ui-1.10.3.custom/js/jquery-1.9.1.js"></script>
<script src="html/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.js"></script>
<script src="html/spinner/spin.js"></script>
?

$(".btn_control") - выбирает все кнопки этого класса в документе
А нужно начинать с той кнопки на которой сработал обработчик, т.е с $(this)
Нет, с this не работает. Видимо когда в кнопке прописан onclick он вообще this не понимает...
Или быть может как-то по-другому сделать нужно...
Возможно каждую кнопку обернуть ещё в класс, например, select, unselect и dwnld, и тогда сделать так:
function SelectAll() {
$(".btn_control.select input").closest("div")
.find("input[type=button]")
.each(function() {
...

UPD: Хотя нет, он всё равно все эти кнопки будет на странице перебирать и опять будет менять на всех вкладках...
« Последнее редактирование: 21.07.2015 14:04:34 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
Или быть может как-то по-другому сделать нужно...
Повесьте обработчик как я писал выше по событию готовности DOM у документа.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Повесьте обработчик как я писал выше по событию готовности DOM у документа.
Это вот так http://forum.altlinux.org/index.php?topic=35046.msg260293#msg260293 ?
Я так делал, нет эффекта.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Напишите самую простую функцию, чтобы привязать её к конкретной кнопке с выводом сообщения. Я вставлю её в код и уверен оно не выведется...
Только ни через onclick кнопки.
Сноси Винду, переходи на Линукс ! :)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
А 'init' при этом в консоль браузера пишется?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
А 'init' при этом в консоль браузера пишется?
Видел инит, там пусто было.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Ужас, как всё просто оказалось...

Кнопку так описывать:
<input type="button" name="select_25" value="Выделить все" data-id="select_25" id="select_25" onclick="SelectAll(this)">Сам скрипт:
function SelectAll(btn) {
var subsec = $(btn).data("id");
var subsec = subsec.split("_");
...
}
Остальное всё также. Вот же дела... ну и сил было потрачено...

Похожий код с передачей параметров углядел здесь http://forums.asp.net/post/5544342.aspx

Пока решено не ставлю, сейчас с духом соберусь и буду кнопку dwnld окучивать, если что сюда обращусь ещё за помощью.

ASte
Спасибо за помощь! Вы мне очень помогли разобраться в проблеме, особенно команда понравилась с closest, возьму на заметку.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
буду кнопку dwnld окучивать
Ну с кнопкой вроде раскидался, там проблема была с передачей массива ID в php скрипт, но достаточно быстро нагуглился ответ. Так что теме статус:

[решено]
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Некоторая проблемка всё же возникла.
Я в php отправляю строку вида:
login=username&paswd=12345Как мне вычленить оттуда имя и пароль ?
Что-то я с explode запутался...

То есть имеется переменная:
$auth = ($_POST['auth'])нужно получить
$login = ...
$paswd = ...
« Последнее редактирование: 22.07.2015 11:53:36 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 550
PHP мне не знаком.
Попробуйте погуглить на тему "получение параметров запроса в PHP"