Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > [jquery] Убить функцию


Автор: sayber 2.3.2010, 17:44
Надо убить работающую функцию.

Код

$(document).ready(function() {
            $('button').click(function() {
             valueTexture = $(this).val();

                var options = { bgzoom:valueTexture };
                $(".jqzoom").jqueryzoom( options );

            });

        });


По клику запускается jqueryzoom, ее надо снести если переменная valueTexture == 'del'

Как это можно реализовать??

Автор: IDVsbruck 2.3.2010, 23:03
Ну ты напостил на форумах ... ответил тебе на sql.ru - возможно, решение подойдет.

Автор: sayber 4.3.2010, 00:41
нет толковых программистов знающих jquery?
up

Автор: EmilRegis 4.3.2010, 06:35
value у кнопки динамически меняется видимо...но, я извиняюсь, раз valueTexture  определяется при клике на кнопке, то почему просто не проверять чему равна эта переменная, а не сносить функцию? 
Код

if(valueTexture <> 'del')   $(".jqzoom").jqueryzoom( options );
 

Автор: sayber 4.3.2010, 14:02
http://affresco.ru/test/index.php/Editor

Автор: IDVsbruck 5.3.2010, 15:35
Что-то, видимо, промахнулся я с решением ... не туда смотрел. Действительно, внутренности click(...) не определяются заранее, а вызываются каждый раз при клике, поэтому смысла в определении/переопределении какой-то внутренней функции заранее нет, это можно делать просто в самом обработчике - проверять глобальную переменную. Более того, из-за этой специфики также нет смысла в дополнительном назначении/удалении функции, так как при следующем клике функция может быть снова назначена. Поэтому либо проверка в обработчике, либо переписать аддон под специфику своего проекта, но опять-таки, будет использована или глобальная переменная или свойство какого-то элемента.

Автор: ksnk 5.3.2010, 19:55
Цитата(sayber @  4.3.2010,  14:02 Найти цитируемый пост)
http://affresco.ru/test/index.php/Editor 

Цитата

Warning: require(/home/u88480/affresco.ru/www/test/system/core/Bootstrap.php) [function.require]: failed to open stream: No such file or directory in /home/u88480/affresco.ru/www/test/index.php on line 106

Fatal error: require() [function.require]: Failed opening required '/home/u88480/affresco.ru/www/test/system/core/Bootstrap.php' (include_path='.:/usr/local/share/pear') in /home/u88480/affresco.ru/www/test/index.php on line 106

 smile 
Ашипка, аднака...

Цитата(sayber @  2.3.2010,  17:44 Найти цитируемый пост)
Надо убить работающую функцию.

Терминологя напрягает. Что такое убить? Слово, несмотря на свой однозначный смысл в программированиии многозначно  smile 

Цитата(sayber @  2.3.2010,  17:44 Найти цитируемый пост)
По клику запускается jqueryzoom, ее надо снести если переменная valueTexture == 'del'

Больше однозначной математики. pls...

Что такое - снести? проветвится по условию - вроде как ответил EmilRegis... Выкинуть неправедно поставленныхй обработчик - нужно смотреть в сторону функции bind и unbind.

Автор: 12345c 5.3.2010, 21:34
ksnk, В программировании kill - однозначно "убить процесс". В JS процесс убить нельзя, поэтому вставляют проверки в код процесса или снимают задачу (весь браузер) методами ОС. Так о чём можно говорить?

"Снести" - это тоже однозначно: удалить (функцию, программу, систему, экземпляр объекта; или иногда в переносном смысле прекратить работу, т.е. "убить процесс").  delete $.fn.jqueryzoom; Тоже сомнительно, что это было нужно.

(Если посмотреть, что такое jqueryzoom,
http://ruseller.com/lessons.php?rub=32&id=166 , 
то видно, что там убивать или модифицировать на проверки нечего. Все процедуры короткие. Поэтому автор не в курсе терминологии и ещё мнит о себе что-то, судя по комментарию.
Цитата(sayber @  4.3.2010,  00:41 Найти цитируемый пост)
нет толковых программистов знающих jquery?
 (Типа "Ну что, вы все тут дураки...".) Может продолжать мнить в том же духе.)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)