Чекбокс мне в якорь.
Доброго дня имеем простейшую конструкцию:
<a href="#"> <input type="checkbox" name=""> test </a> $("a").on("click", function(event){ $(this).children("input").attr("checked", true) return false }) Очень бы хотелось поменять значение у чекбокса кликая на чекбокс. К сожалению структуру HTML поменять нет возможности. |
Цитата:
|
Цитата:
$(this).children("input").prop("checked", true); |
Цитата:
|
Цитата:
|
Цитата:
Цитата:
1 как бы чек бокс сам при клике будет менять своё значение - это поведение предопределённое 2 return false - вы убиваете поведение предопределённое |
Scrum,
во блин ))) хоть по ссылке хоть по чекбоксу <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function () { $("a").on("click", function(event){ if(this != event.target) return; event.preventDefault(); var input = $(this).children("input"); input.prop("checked", !input[0].checked); }) }) </script> </head> <body> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <a href="#"> <input type="checkbox" name=""> test </a> </body> </html> |
Цитата:
Совершенно ясно понимаю поставленную перед собой задачу. Я хочу что бы при клике именно на чекбокс у меня не было предопределенного действия для элемента А и осуществилось предопределенное действие для чекбокса, но по странным (хотя вроде бы и понятным и логичным) обстоятельствам в event.target попадает элемент input для которого так же отрабатывает отмена предопределенного действия. рони Увы происходит "Скачёк". в firefox, opera, в chrome b ie10 - отрабатывает корректно. Из приятного понравилась конструкция с проверкой ) |
Scrum,
как отменить всплытие для в firefox пока загадка ))) |
Scrum,
Вариант ... для firefox и прочих ... :write: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $(function () { $("a").on("click", function (event) { var input = $("input:checkbox", this), checked = !input.prop("checked"); $(event.target).is(":checkbox") && (checked = !checked); window.setTimeout(function () { input.prop("checked", checked) }, 0); return false }) }); </script> </head> <body> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> <a href="#"> <input type="checkbox" name=""> test </a> </body> </html> |
Часовой пояс GMT +3, время: 10:40. |