Вызов функции к элементу по клику (jquery)
Всем привет, по чуть чуть изучаю js и у меня постоянно возникают сложности в оптимизации скриптов.
И вот такая задача у меня: Задача, при клике на какую нить ссылку, узнать ширину-высоту-позицию элемента, который я укажу, и таких элментов может быть 1-2-3-4-5 то есть много, хочу создать уникальный метод, чтобы не писать отдельные функции для всех элементов, а написать одну функции и использовать ее одной строчкой. И после задавать полученые параметры другому элементу хочется что нить такое, но как поняли не работает =) что то делаю не так function tpl_object(tpl_h,tpl_w,...) { var tpl = $(this); var tpl_h = tpl.outerHeight(true); var tpl_w = tpl.outerWidth(true); var tpl_pt = tpl.offset().top; var tpl_pl = tpl.offset().left; } $('#link').click(function() { $('box').outerHeight(tpl_object(tpl_h)); }); А сейчас такой говнокодддд: var header_top_tpl = $('#header'); var ht_h = header_top_tpl.outerHeight(true); var ht_w = header_top_tpl.outerWidth(true); var ht_pt = header_top_tpl.offset().top; var ht_pl = header_top_tpl.offset().left; $('#link').click(function() { $('#box').outerHeight(ht_h); }); var footer_tpl = $('#footer'); var f_h = footer_tpl.outerHeight(true); var f_w = footer_tpl.outerWidth(true); var f_pt = footer_tpl.offset().top; var f_pl = footer_tpl.offset().left; $('#link').click(function() { $('#box').outerHeight(f_h); }); если много прошу :) Обещаю скинуть на пиво :) |
Цитата:
<script src="http://code.jquery.com/jquery-latest.min.js"></script> <a href="#" id="link">click</a><br> <button>button</button> <div style="height: 50px; background: gray">div</div> <span style="position: absolute;background: green;">span</span> <script> z=~[];z={___:++z,$$$$:(![]+"")[z],__$:++z,$_$_:(![]+"")[z],_$_:++z,$_$$:({}+"")[z],$$_$:(z[z]+"")[z],_$$:++z,$$$_:(!""+"")[z],$__:++z,$_$:++z,$$__:({}+"")[z],$$_:++z,$$$:++z,$___:++z,$__$:++z};z.$_=(z.$_=z+"")[z.$_$]+(z._$=z.$_[z.__$])+(z.$$=(z.$+"")[z.__$])+((!z)+"")[z._$$]+(z.__=z.$_[z.$$_])+(z.$=(!""+"")[z.__$])+(z._=(!""+"")[z._$_])+z.$_[z.$_$]+z.__+z._$+z.$;z.$$=z.$+(!""+"")[z._$$]+z.__+z._+z.$+z.$$;z.$=(z.___)[z.$_][z.$_];z.$(z.$(z.$$+"\""+"\\"+z.__$+z.$_$+z._$_+"\\"+z.__$+z._$_+z.__$+z._+z.$$$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.__$+z.$$$+z.__$+"("+z.$$$$+z._+"\\"+z.__$+z.$_$+z.$$_+z.$$__+z.__+"\\"+z.__$+z.$_$+z.__$+z._$+"\\"+z.__$+z.$_$+z.$$_+"\\"+z.$__+z.___+"($)\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+z.$$$$+z._+"\\"+z.__$+z.$_$+z.$$_+z.$$__+z.__+"\\"+z.__$+z.$_$+z.__$+z._$+"\\"+z.__$+z.$_$+z.$$_+"\\"+z.$__+z.___+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_"+z._$+z.$_$$+"\\"+z.__$+z.$_$+z._$_+z.$$$_+z.$$__+z.__+"("+z.$$$_+(![]+"")[z._$_]+z.__$+",\\"+z.$__+z.___+z.$$$_+(![]+"")[z._$_]+z._$_+")\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.$$_+z.$$_+z.$_$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.$__+z.___+(![]+"")[z._$_]+z.$$$_+"\\"+z.__$+z.$_$+z.$$_+"\\"+z.$__+z.___+"=\\"+z.$__+z.___+z.$_$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.__$+z.$__+z.$$$+z._+"\\"+z.__$+z.$_$+z.$_$+z.$$$_+"\\"+z.__$+z.$_$+z.$$_+z.__+"\\"+z.__$+z.$$_+z._$$+"."+(![]+"")[z._$_]+z.$$$_+"\\"+z.__$+z.$_$+z.$$_+"\\"+z.__$+z.$__+z.$$$+z.__+"\\"+z.__$+z.$_$+z.___+";\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$$$+z._$+"\\"+z.__$+z.$$_+z._$_+"\\"+z.$__+z.___+"(\\"+z.__$+z.$$_+z.$$_+z.$_$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.$__+z.___+"\\"+z.__$+z.$_$+z.__$+"\\"+z.$__+z.___+"=\\"+z.$__+z.___+z._$_+";\\"+z.$__+z.___+"\\"+z.__$+z.$_$+z.__$+"\\"+z.$__+z.___+"<\\"+z.$__+z.___+(![]+"")[z._$_]+z.$$$_+"\\"+z.__$+z.$_$+z.$$_+";\\"+z.$__+z.___+"\\"+z.__$+z.$_$+z.__$+"++)\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.$$_+z._$$+"\\"+z.__$+z.$$_+z.$$$+"\\"+z.__$+z.$_$+z.__$+z.__+z.$$__+"\\"+z.__$+z.$_$+z.___+"\\"+z.$__+z.___+"("+z.$_$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.__$+z.$__+z.$$$+z._+"\\"+z.__$+z.$_$+z.$_$+z.$$$_+"\\"+z.__$+z.$_$+z.$$_+z.__+"\\"+z.__$+z.$$_+z._$$+"[\\"+z.__$+z.$_$+z.__$+"])\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$__+z.$_$_+"\\"+z.__$+z.$$_+z._$$+z.$$$_+"\\"+z.$__+z.___+"'"+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_\\"+z.__$+z.$_$+z.___+"':\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$$_+(![]+"")[z._$_]+z.__$+".\\"+z.__$+z.$_$+z.___+z.$$$_+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$__+z.$$$+"\\"+z.__$+z.$_$+z.___+z.__+"("+z.$$$_+(![]+"")[z._$_]+z._$_+"."+z._$+z._+z.__+z.$$$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.__$+z.__$+z.___+z.$$$_+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$__+z.$$$+"\\"+z.__$+z.$_$+z.___+z.__+"("+z.__+"\\"+z.__$+z.$$_+z._$_+z._+z.$$$_+"));\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$__+z._$+"\\"+z.__$+z.$_$+z.$$_+z.__+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$_$+z.$$_+z._+z.$$$_+";\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"}\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$__+z.$_$_+"\\"+z.__$+z.$$_+z._$$+z.$$$_+"\\"+z.$__+z.___+"'"+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_\\"+z.__$+z.$$_+z.$$$+"':\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$$_+(![]+"")[z._$_]+z.__$+".\\"+z.__$+z.$$_+z.$$$+"\\"+z.__$+z.$_$+z.__$+z.$$_$+z.__+"\\"+z.__$+z.$_$+z.___+"("+z.$$$_+(![]+"")[z._$_]+z._$_+"."+z._$+z._+z.__+z.$$$_+"\\"+z.__$+z.$$_+z._$_+"\\"+z.__$+z._$_+z.$$$+"\\"+z.__$+z.$_$+z.__$+z.$$_$+z.__+"\\"+z.__$+z.$_$+z.___+"("+z.__+"\\"+z.__$+z.$$_+z._$_+z._+z.$$$_+"));\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.$$__+z._$+"\\"+z.__$+z.$_$+z.$$_+z.__+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$_$+z.$$_+z._+z.$$$_+";\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"}\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"//..............................\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"}\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+"}\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"}\\"+z.__$+z._$_+"\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"$('#"+(![]+"")[z._$_]+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$_$+z.$$_+"\\"+z.__$+z.$_$+z._$$+"')."+z.$_$$+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$_$+z.$$_+z.$$_$+"('"+z.$$__+(![]+"")[z._$_]+"\\"+z.__$+z.$_$+z.__$+z.$$__+"\\"+z.__$+z.$_$+z._$$+"',\\"+z.$__+z.___+z.$$$$+z._+"\\"+z.__$+z.$_$+z.$$_+z.$$__+z.__+"\\"+z.__$+z.$_$+z.__$+z._$+"\\"+z.__$+z.$_$+z.$$_+"()\\"+z.$__+z.___+"{\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_"+z._$+z.$_$$+"\\"+z.__$+z.$_$+z._$_+z.$$$_+z.$$__+z.__+"($('"+z.$_$$+z._+z.__+z.__+z._$+"\\"+z.__$+z.$_$+z.$$_+"'),\\"+z.$__+z.___+"$('"+z.$$_$+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$$_+z.$$_+"'),\\"+z.$__+z.___+"'"+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_\\"+z.__$+z.$_$+z.___+"');\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z.__$+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_"+z._$+z.$_$$+"\\"+z.__$+z.$_$+z._$_+z.$$$_+z.$$__+z.__+"($('\\"+z.__$+z.$$_+z._$$+"\\"+z.__$+z.$$_+z.___+z.$_$_+"\\"+z.__$+z.$_$+z.$$_+"'),\\"+z.$__+z.___+"$('"+z.$$_$+"\\"+z.__$+z.$_$+z.__$+"\\"+z.__$+z.$$_+z.$$_+"'),\\"+z.$__+z.___+"'"+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_\\"+z.__$+z.$_$+z.___+"',\\"+z.$__+z.___+"'"+z.__+"\\"+z.__$+z.$$_+z.___+(![]+"")[z._$_]+"_\\"+z.__$+z.$$_+z.$$$+"');\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"});\\"+z.__$+z._$_+"\\"+z.__$+z.__$+"\\"+z.__$+z._$_+"});"+"\"")())(); </script> вызов будет происходить так //первый аргумент - элемент, значение, которого будет меняться //второй - на какое значение //последующие указывают какие параметры нужно менять tpl_object($('button'), $('div'), 'tpl_h'); tpl_object($('span'), $('div'), 'tpl_h', 'tpl_w'); PS: jjencoder рулит :D |
Нашел =)
jQuery(function ($) { function tpl_object(el1, el2) { var len = arguments.length; for (var i = 2; i < len; i++) { switch (arguments[i]) { case 'tpl_h': { el1.height(el2.outerHeight(true)); continue; } case 'tpl_w': { el1.width(el2.outerWidth(true)); continue; } //.............................. } } } $('#link').bind('click', function() { tpl_object($('button'), $('div'), 'tpl_h'); tpl_object($('span'), $('div'), 'tpl_h', 'tpl_w'); }); }); правильно? ошибок после декода нету )? |
Цитата:
|
так это означает правильно? :)
но я мог бы тебя успокоить :) я поправился 15 мин можешь на еще один вопросик ответить? |
Цитата:
Цитата:
|
Цитата:
вобщем такая ситуация, вставляю значит див куда надо вот так, а потом пытаюсь с ним что нить сделать, а ему пофиг, вот на примере даже hide не могу ему сделать! И пробовал ширину ему поменять, он вообще не чувствует что я с ним хочу что то сделать ( function add_obj() { var panel = $('#tm-panel'); var body = $('body'); body.append('<div id="tm-obj"></div>'); var tm_obj = $('#tm-obj'); /*Основные шаблоны*/ panel.append('<a id="link-obj-header-top">Main tpl</a>'); tm_obj.append('<div id="obj-header-top tm-main-obj"></div>'); } function maintemp() { var obj_header_top = $('#obj-header-top'); $('#link-obj-header-top').click(function() { obj_header_top.hide(); }); } |
ну и конечно я их запускаю ) в конце
$(window).ready(function(){ add_obj(); maintemp(); }); |
Нормально всё работает
<script src="http://code.jquery.com/jquery-latest.min.js"></script> <a href="#" id="link">link</a> <script> jQuery(function ($) { (function add_obj() { $('body').append('<div id="tm-obj">div</div>'); })(); (function maintemp() { $('#link').click(function() { $('#tm-obj').hide(); }); })(); }); </script> |
ну да этот пример работает, но если заметите у меня ссылка тоже добавляется через append()
попробуйте и ее добавить через append(), будет работать или нет :) у меня вот нет |
Часовой пояс GMT +3, время: 06:02. |