Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
ее и так можно использовать внутри сколько угодно раз


Код:
var tis = {  
    _dt: function() {return document.getElementById('tis');},  
    _open: function(t) {  
        this._dt.innerHTML = '<div id="tisc">'  
        + '<i onclick="return tis._exit();" class="fa exit"></i>'  
        + t  
        + '</div>';  
        dt.className = '';  
        return false;  
    },  
    _exit: function() {  
        this._dt.className = 'hidden';  
        return false;  
    }  
}

 
так сойдет?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 14:52 03-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
так сойдет?

Разрешение у меня спрашиваете? А попробовать самостоятельно?
 

Цитата:
this._dt

Вернет саму функцию, а не результат ее исполнения

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 18:26 03-12-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Хорошо, попробую.
Вы не подскажите, что это за синтаксис такой?
 
 

Код:
<script type="text/javascript">
        (function(){var a=[].slice;window.is_debug=!1,window.protolog=function(){return{debug:function(){var b;b=1<=arguments.length?a.call(arguments,0):[]}}}(),window.AppState={stateid:1,realm:void 0}}).call(this);
    </script>

 
тут код написан так:

Код:
<script type="text/javascript">
        (function(){var ....
    </script>

 
Как этот синтаксис называется? Можно пару ознакомительных ссылок? И если не жалко, пару преимуществ и недостатков... И зачем он)

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 00:20 04-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
Как этот синтаксис называется?

обычный синтаксис, что в нем особенного?
 

Цитата:
И зачем он)

чтобы не перекрывались переменные, внутри функции они локальные.
http://ru.wikipedia.org/wiki/Замыкание_(программирование)
http://peter.michaux.ca/articles/javascript-namespacing

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 01:50 04-12-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
что в нем особенного

я его очень часто вижу.... Но сам им никогда не пользовался... Вот решил спросить, что это такое, и зачем оно.
Я так понимаю, что такой синтаксис используют только для того, чтоб выполнить какуе-то операцию один раз, и не оставлять после её выполнения кучу ненужных переменных для дальнейшего использования. Я правильно понял?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 02:14 04-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
 правильно понял?

ну, можно сказать и так.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 04:43 04-12-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii[?]

Цитата:
ну и каким боком это относится к CSS??  

Думал что можно оптимизировать средствами CSS.
Пробовал такими способами сделать.
 
Если добавить это событие к div.2

Код:
elems[i].addEventListener("click", highlightThis, true);

оно будет срабатывать ДО открытия окна. Нажал на кнопку - появился alert() с highlightThis() и потом только открылось дополнительное плавающее окно. При повторном нажатии куда угодно - 0 реакции.
 
Попробовал добавить к div.2  

Код:
div2.onclick = function(event) {
            if(event.target.tagName == this.tagName) {
                alert('1');
            }
        };

Вроде работает корректно. Но есть 1 недостаток. Если нажимать мишкой в области div.3 где есть отступ padding, срабатывает div.2.onclick() и окно закрывается. Хотя нажатие было в блоке div.3.
 
Вот наглядный пример.
 
   
 
При нажатии в зеленой (padding) или оранжевой (margin) - идет закрытие окна.
При нажатии в синей области - окно не закрывается. Как и должно быть.
Как убрать нажатие и в зеленой области?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:44 08-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
Как убрать нажатие и в зеленой области?  

я забыл колпак телепата где то.. не видя html кода делать какие то выводы..
наверно же сделать крестик отдельным элементом и цеплять на него отдельный обработчик события, не давая ему "пузыриться" к родителю.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 23:56 08-12-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
не видя html кода


Код:
<style>  
div#table div.1{background:rgba(0,0,0,0.85); position:fixed; top:0; bottom:0; left:0; right:0; z-index:5;}  
div#table div.2{position: fixed; top: 0; bottom: 0; left: 0; right: 0; overflow: auto; z-index: 6;}  
div#table div.3{background: #fff; width: 700px; margin: 0px auto; padding: 20px; position: relative; z-index: 7;}  
div#table div.3 i.fa-exit {float: right; font-size: 15pt; margin-top: -17px; margin-right: -8px; cursor: pointer;}
</style>  
 
<div id="table">  
    <div class="1" onclick="return exit1();"></div>  
    <div class="2" onclick="return exit2();">  
        <div class="3">
            <i class="fa-exit" onclick="exit();"></i>
            <form method="POST" action="./">  
                ...........................................  
            </form>  
        </div>  
    </div>  
</div>

 

Цитата:
крестик отдельным элементом

 

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 00:00 09-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
крестик отдельным элементом

и кто из них крестик?
 

Цитата:
где есть отступ padding, срабатывает div.2.onclick() и окно закрывается. Хотя нажатие было в блоке div.3.  

я же давал ссылку на пузыри..
 

Цитата:
if(event.target.tagName == this.tagName)

какой смысл сравнивать теги, а не сами объекты?
if (event.target == this)

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 00:16 09-12-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
и кто из них крестик?  


Цитата:
<i class="fa-exit" onclick="exit();"></i>  

 

Цитата:
я же давал ссылку на пузыри..  

Не понял)
 

Цитата:
какой смысл сравнивать теги, а не сами объекты?  

Если сравнивать только объекты или id объектов, работает хорошо.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 00:36 09-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
Не понял)  

https://learn.javascript.ru/event-bubbling
там же написано, как остановить распространение события к родителям.
клик на  

Цитата:
<div class="3">  

распространяется к родителю и перехватывается в
Цитата:
<div class="2" onclick="return exit2();">  


Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 00:42 09-12-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Если Вы про это:  

Код:
event.stopPropagation()

Этот вариант не подходит.
 
Реализация такого метода:

Цитата:
if (event.target == this)

подошла лучше.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 00:49 09-12-2016
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть объект obj, у него есть два метода meth1 и meth2.  
Из метода meth1 вызывается внешняя функция func(par1, par2, meth2)
одним из параметров которой передается meth2.  
function func(par1, par2, callback){
..
..
var changestate = function(){
     ...
 
    callback();
 
    }
}
 
Внутри этой функции определятся callback функция для определенного события.  
Из нее - из колбэк функции вызывается meth2.
Вопрос - как добиться, чтобы внутри метода meth2 this указывал на obj.
Потому, что он указывает в настоящий момент совсем на другой объект.

Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 22:27 14-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aladdinych

Цитата:
одним из параметров которой передается meth2.  

как передается? если просто this.meth2, то ессно не будет работать - нужно через замыкание
https://jsfiddle.net/qsex0k1c/2/
 
ps: поправил ссылку, а то руки крюки - думаю одно, а пишут другое )

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 22:35 14-12-2016 | Исправлено: Mavrikii, 22:42 14-12-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может кто поможет на jsfiddle.net к этому Подробнее...
 
дабавить вот это http://stackoverflow.com/questions/31391207/javascript-readasbinarystring-function-on-e11
 
JavaScript readAsBinaryString Function on E11
 
заранее благодарен
 
Добавлено:
PS: без jQuery

Всего записей: 2240 | Зарегистр. 25-02-2013 | Отправлено: 18:09 16-12-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
обязательно с 'onloaded' а не 'onload'
и желательно чтобы в IE10 тоже работало

Всего записей: 2240 | Зарегистр. 25-02-2013 | Отправлено: 21:14 16-12-2016 | Исправлено: vs6262, 12:36 17-12-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может кто действительно поможет ?
 
Добавлено:
я сам с этими прототипами не разберусь




Запрещено дублировать вопросы в разных темах и поднимать тему

Всего записей: 2240 | Зарегистр. 25-02-2013 | Отправлено: 03:09 18-12-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
как же вы утомляете флудом.. давно бы уже сами сделали
https://jsfiddle.net/xazfukob/
 
а для не html5 только flash или java - https://github.com/Jahdrien/FileReader

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 04:34 18-12-2016 | Исправлено: Mavrikii, 04:36 18-12-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо большое
 
Добавлено:

Цитата:
а для не html5 только flash или java

FileReader для более старых браузеров может можно заменить на ActiveX Reader.
случайно в гоогле наткнулся. прозондирую ещё

Всего записей: 2240 | Зарегистр. 25-02-2013 | Отправлено: 04:39 18-12-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru