function Mobile(newConfigure) {
this.callbacks = []
this.functions = {mobile: null, desktop: null};
}
Mobile.prototype.dispatcher = function(el, ev, dlg, cb) {
this.callbacks.push({ el: el, ev: ev});
return $(el).on(ev, dlg, cb);
}
Mobile.prototype.removeListeners = function() {
for (var i = 0, ln = this.callbacks.length; i < ln; i++ ) {
$(this.callbacks[i].el).off(this.callbacks[i].ev);
}
this.callbacks = [];
}
Mobile.prototype.run = function(params) {
//Здесь какое-либо условие
this.removeListeners();
if (условие) {
params.mobile(this.dispatcher);
} else {
params.desktop(this.dispatcher);
}
}
var mobile = new Mobile({
mobile: function(on) {
on('#myButton', 'click', function(e) { /* */ });
},
desktop: function(on) {
on('#myButton', 'click', function(e) { /* */ });
}
})
mobile.run();
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js"></script>
<input type="text" id="in">
<input type="text" id="out">
function handler() {
document.querySelector('#out').value = CryptoJS.SHA1(this.value);
}
var input = document.querySelector('#in');
input.addEventListener('keyup', handler);
input.addEventListener('change', handler);
function encodeHtmlEntities(str) {
return String(str)
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/\\/g, '\')
.replace(/\//g, '/');
};
function decodeHtmlEntities(str) {
return String(str)
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '\'')
.replace(/\/g, '\\')
.replace(///g, '/');
};
var str = '<script src="test.com">\\Lorem Ipsu\'m</script>';
str = encodeHtmlEntities(str);
console.log(str); // <script src="test.com">\Lorem Ipsu'm</script>
str = decodeHtmlEntities(str);
console.log(str); // <script src="test.com">\Lorem Ipsu'm</script>
var foo = (function() { /* */ });
function foo () { /* */ }
var regx = {
name: /^[a-zа-я -]{3,}$/i,
pass: /\S{8,}/,
mail: /^([\w\d_.-]){3,}@([\w\d_.-])+\.[\w]{2,5}$/
}
function signup() {
var el_name = $("#name"),
el_lname = $("#last-name"),
el_pass = $("#password"),
el_mail = $("#mail"),
data = {
name: el_name.val(),
lastname: el_lname.val(),
psw: el_pass.val(),
login: el_mail.val()
};
el_name.removeClass('error');
if (!regx.name.test(data.name)) {
return el_name.addClass('error');
}
el_lname.removeClass('error');
if (!regx.name.test(data.lname)) {
return el_lname.addClass('error');
}
el_pass.removeClass('error');
if (!regx.pass.test(data.psw)) {
return el_pass.addClass('error');
}
el_mail.removeClass('error');
$(".r-f-pp-l .p-att").text('');
if (!regx.mail.test(data.login)) {
$(".r-f-pp-l .p-att").text('Пожалуйста, заполните поле email правильно. Пример: myemail@mail.ru');
return el_mail.addClass('error');
}
$.post('site/singup', data, function(resp) {
alert('successful : ' + resp);
});
}