Не работает скрипт перемещения элементов
Вот сам скрипт:
$('body').click(function (event) {
console.log($('[visibility]'));
if ($('[visibility]').length == 0){
$(event.target).css({"visibility": "hidden"});
} else {
$('[visibility]').insertAfter($(event.target)).css({"visibility": "visible"});}
});
тут я кликаю по элементу, если нет никаких скрытых элем. - делаю этот скрытым, если есть скрытый - ставлю его после того куда кликнул. :cray: |
Цитата:
if (!$(':hidden').length){ |
regnised,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
div {
width: 100px;
height: 100px;
float: left;
border: #000000 2px solid;
}
.first {
background: #FF0000;
}
.last{
background: #008000;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
$('body').on('click', 'div', function (event) {
event.preventDefault();
if (!$('div:hidden').length){
$(this).hide();
} else {
$('div:hidden').insertAfter(this).show()}
});
});
</script>
</head>
<body>
<div class='first'>1</div>
<div class='first'>2</div>
<div class='first'>3</div>
<div class='last'>4</div>
</body>
</html>
|
Спасибо, немного позже проверю :thanks:
|
Переделал свое вот так:
$('body').click(function (event) {
event.preventDefault();
if (!$('div:hidden').length){
$(this).hide();
} else {
$('div:hidden').insertAfter(this).show();}
});
- не работаетМожет Ваше решение работает потому что есть $(function(){ $(function(){ //тут анонимная функция вызывается $('body').on('click', 'div', function (event) { // тут при событии онклик с боди берем дивы event.preventDefault(); // перехватываем дефаултное событие миши if (!$('div:hidden').length){// если не нашли скрытых дивов - скрываем тот на который кликнули $(this).hide(); } else { $('div:hidden').insertAfter(this).show()} // если есть скрытый див - показываем }); }); вопрос, почему у меня не работает? :) :( |
Цитата:
|
regnised,
$('body').click(function (event) { //есть ли body? к этому моменту или ещё нет
event.preventDefault();
if (!$('div:hidden').length){
$(this).hide(); // скрыли body
} else {
$('div:hidden').insertAfter(this).show();} // если вдруг был скрытый div, попытаемся всунуть его мимо body
});
|
вот немного подшаманил с тегом <p> работает
$(document).ready(
$('body').on('click', 'p', function (event) {
event.preventDefault();
if (!$('p:hidden').length){
$(this).hide();
} else {
$('p:hidden').insertAfter(this).show();}
}));
|
| Часовой пояс GMT +3, время: 06:21. |