Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как удалить function ***(){.... (https://javascript.ru/forum/misc/16097-kak-udalit-function-%2A%2A%2A-%7B.html)

Dorian_bs 26.03.2011 00:27

Как удалить function ***(){....
 
Всем добрый вечер. :)
Возникла проблема с написанием скрипта.
Необходимо, что бы при нажатии на кнопку определенная функция в скрипте отключалась/удалялась.

Кнопка:

<div onclick="portopisoff()">Отключить Функцию</div>

function portopisoff() {
....отключение portoff()....
}


Функция скрипта:

portoff()
function portoff(){
...
...
...
}


Заранее спасибо! :D

Gvozd 26.03.2011 00:31

че?

Dorian_bs 26.03.2011 00:56

Необходимо отключить скрипт по нажатию кнопки на сайте

Gvozd 26.03.2011 02:03

Цитата:

Сообщение от Dorian_bs
Необходимо отключить скрипт по нажатию кнопки на сайте

че?
скрипт либо выполняется, либо нет.
если он выполняется, у вас никогда в жизни не получится в это время нажать кнопку. только до или после.
а если он не выполняется, то и не выполняется.
PS такой "идиотский" ответ, потому что вы задаете идиотский вопрос.
нельзя отключить/удалить функцию, или тем более скрипт.
заблокировать его действие можно.
но для этого надо узнать как минимум, каким образом код был создан, и как должен выполнится.
то есть рекомендации для element.onclick, и element.addEventListener абсолютно разные.
в случае же, <script>func()</script> вообще третьи.
PPS я уж не говорю, что в твоей формулировке, ты спрашиваешь несусветную хуйню.
тебе надо либо более правильно спланировать свою программу, либо(скорее всего) научится выражать свои мысли
PPPS ты полне можешь в "блокируемой" функции вставить код, который бы делал return по какому-то специфичному условию
и выставлять это условие тогда, когда тебе нужно "заблокировать" функцию
PPPPPPPPPPPS Господи, благослови идиотов.

Dorian_bs 26.03.2011 02:40

Вы часто любите повышать свою самооценку за счет "новеньких"?
В данном случае я являюсь человеком, который только начал вникать в это "великое" дело JS. Думаю, что можно разговаривать и разъяснять чуть вежливее..
Вы путаете понятия "Идиот" и "Новичок".
Идиот - это тот, кто страдает идиотией (врожденным слабоумием).
Новичок - это человек, только начинающий свою работу с чем-либо, изучение чего-либо.

Мне конечно же не составит труда выложить сюда весь скрипт. Но я пытался объяснить ситуацию и вопрос вкратце, что бы не нагружать Вас лишней информацией...

Подробно...

У меня есть скрипт:

portoff()
function portoff(){
$('#photo1').click(function(){$('#port-inf-1, [name="save1"]').show();});
$('[name="save1"]').click(function(){$('#port-inf-1, [name="save1"]').hide();proflok();});
$('#photo2').click(function(){$('#port-inf-2, [name="save2"]').show();});
$('[name="save2"]').click(function(){$('#port-inf-2, [name="save2"]').hide();proflok();});
$('#photo3').click(function(){$('#port-inf-3, [name="save3"]').show();});
$('[name="save3"]').click(function(){$('#port-inf-3, [name="save3"]').hide();proflok();});
}


При открытии страницы он сразу же запускается из-за выполнения "portoff()" в начале.

Суть:

Необходимо создать кнопку на сайте, при нажатии на которую данная функция "portoff()" "заблокируется" и какие-либо действия с ней будут невозможны.

Пример:

У нас есть "Кнопка 1" на сайте, при нажатии на которую внизу появляется текст (.show) ранее скрытый display:none;
При нажатии на "Кнопку 2" функция выполняющая действие описанное выше "заблокируется". То есть при нажатии на "Кнопку 1" (Перед тем нажав "Кнопку 2") никакого действия происходить не будет.

FINoM 26.03.2011 02:44

Цитата:

Сообщение от Gvozd
нельзя отключить/удалить функцию

o_0
а как же delete funct, а как же переопределение функции, типа var funct = function(){}?
Просто зря обосрал человека.

Dorian_bs 26.03.2011 02:50

FINoM,
Большое спасибо за ответ =)
Вы не могли бы объяснить, как применить "var funct = function(){}" в моем случае?
Просто с "var"-ами дела ещё не имел.

Вот, что у меня получилось... Но не работает.
function portopisoff(){
this.delete = function portoff() {
delete this;
}
}

FINoM 26.03.2011 03:04

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

Например:
getRandomInt1() //5
function getRandomInt1() {return 5;}
// но
getRandomInt2() //ReferenceError: getRandomInt2 is not defined
var getRandomInt2 = function() {return 5;}
getRandomInt2() //5
// и
function randomIntFunctionInitialize() {
   function getRandomInt3(){return 5;}
}
getRandomInt3() //ReferenceError: getRandomInt3 is not defined
randomIntFunctionInitialize()
getRandomInt3() //5

FINoM 26.03.2011 03:05

Цитата:

Сообщение от Dorian_bs
Но не работает.

И не должно. Извини, но это уже откровенный бред.

Dorian_bs 26.03.2011 03:18

Спасибо за пример))
Разобрался))


Часовой пояс GMT +3, время: 22:32.