WolF™
Newbie-
Posts
6 -
Joined
-
Last visited
Information
-
Sex
Мужчина
-
From
Россия, Тверь
WolF™'s Achievements
Explorer (1/14)
0
Reputation
-
Извиняюсь, конечно я хотел вызвать ее в контексте другого объекта (в моем случае this) Но самое интересное - данный способ работает во всех браузерах Нашел решение - вытащил .bind из Mootools и "вкрутил" в свой проект. Может кому пригодится: Function.prototype.life = function (scope) { var fn = this; return function () { return fn.apply(scope, arguments); }; };
-
Это смена области видимости функции.. Или в JQ она реализуется как-то иначе?) Просто в JQuery не очень силен) А тут надо было nivo-slider подключить, а он на JQ как-раз.. Ну 2 библиотеку подключать было не вариант, начал учить большую и жирную либу)
-
Здравствуйте! Приходится делать сайт с поддержкой ослов (IE). Ошибка заключается в моем объекте, если не сложно, подскажите где.. var ParseHash = function() { $(window).hashchange(function() { this.hash = location.hash.replace(/#/, "").split("&"); if(!this.hash[0]) this.hash = []; if(this.onhc) this.onhc([this.hash, location.hash]) } .bind(this)); $(window).hashchange(); this.select = function(a) { var b = !1; jQuery.each(this.hash, function(d, c) { if(c.split("=")[0] == a) return b = c.split("=")[1], !1 }); return b }; this.set = function(set) { var add = function(arr) { if(this.hash[0] && this.select(arr[0])) { jQuery.each(this.hash, function(i, val) { if(val.split('=')[0] == arr[0]) { this.hash[i] = [arr[0], arr[1]].join('='); } } .bind(this)); } else { this.hash.push([arr[0], arr[1]].join('=')); } } .bind(this); if(arguments[1]) { add([set, arguments[1]]); } else { for(var key in set) { add([key, set[key]]); } } this.sync(); }; this.del = function(key) { if(arguments[1]) { jQuery(this.hash, function(i, val) { if(val && val.split('=')[1] == key) { delete this.hash[i]; } } .bind(this)); } else { jQuery.each(this.hash, function(i, val) { if(val && val.split('=')[0] == key) { delete this.hash[i]; } } .bind(this)); } this.sync(); }; this.sync = function() { var h = []; for(var i = 0; i < this.hash.length; i++) { if(i in this.hash) { h.push(this.hash[i]) } } this.hash = h; this.hash.sort(); location.hash = this.hash.join('&'); }; } P.S: Сайт полностью на Ajax'e. С отключенным JS переходит в обычный режим. Буду очень рад ответу) P.P.S: После этого кода IE отказывается вызывать даже alert.. P.P.P.S: Используется jQuery последней версии и JQuery.onhashchange plugin (первая ссылка в Google (дабы без рекламы))
-
HTML: <form> <label>Ввести свою цену <input type='checkbox' id = 'setprice'></label> <input id = 'price' style = 'display: none'><br> <hr> <input id = 'print' style = 'width: 100%' value = 'Добрый день, у нас есть 1020 долларов и мы хотим участников ближе к Москве'> </form> JS: var defVal = $('#print').val(); $('#setprice').change(function() { if ($(this).attr('checked')) { $('#price').css('display', 'block'); } else { $('#price').css('display', 'none'); $('#print').val(defVal); } }); $('#price').keypress(function() { setTimeout(function() { if ($('#price').val()) { $('#print').val($('#print').val().replace(/\d+/, $('#price').val())); } else { $('#print').val(defVal) } }, 100) }); JSFiddle Поймешь задумку - сделаешь сам)
-
Скрыть/показать все блоки div с таким же классом как в selection
WolF™ replied to rdfhnbhf's question in JavaScript
HTML: <DIV id='content'> <DIV id='b1' class="myclass a01 20120720">текст</DIV> <DIV id='b2' class="myclass a02 20120720">текст1</DIV> <DIV id='b3' class="myclass a01 20120720">текст2</DIV> <DIV id='b4' class="myclass a02 20120720">текст3</DIV> </DIV> JS: function getSelected() { if (window.getSelection) { return window.getSelection(); } else if (document.getSelection) { return document.getSelection(); } else if (document.selection) { return document.selection.createRange().text; } } (function hide() { var hides = 0; function on() { if (!hides) { var s = getSelected(); if (s == 'текст' || s == 'текст2') { $('.a02').css('display', 'none'); hides = 1; } else if (s == 'текст1' || s == 'текст3') { $('.a01').css('display', 'none'); hides = 1; } } else { $('.a02, .a01').css('display', 'block'); hides = 0; } } $(document).keydown(function() { if (event.keyCode == 13) { on(); } }); })(); Это так сказать под данную задачу. Можно написать скрипт, который будет определять DIV, который выделили, и не будет зависеть от текста DIV'a, но это уже за отдельную плату Если что: ICQ 6-333-106-23 P.S: Клавиша Insert зарезервирована (т.к. на ней находится Print Screen). В моем примере используется клавиша Enter. -
Переписал ваш код) Работающая версия: HTML: <form name="form" method="post" id='form'> <input type="text" name="name" class="name" size="30"> <div class="errorName"></div> <input type="button" value="Click" id='click'> </form> JS: $('#click').click(function() { alert(validate($('#form input[name="name"]'))) }); function validate(inp) { if (!inp.val()) { $(".errorName").html("<b>Поле имя не заполнено</b>").css({ "color": "red" }); $(".name").toggleClass("errorList"); $(".name").click(function() { $(".name").removeClass("errorList"); $(".errorName").html(""); }); return false; } return true; } CSS: .errorList{ background-color:#999; border:2px solid red; }