Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обичная функця внутри: $(document).ready(); не работает (https://javascript.ru/forum/misc/28447-obichnaya-funkcya-vnutri-%24-document-ready-%3B-ne-rabotaet.html)

dadli 20.05.2012 12:32

обичная функця внутри: $(document).ready(); не работает
 
здравствуите
скажите плиз почему такои код не работает ?

$(document).ready ( function () {

	function bla() {
		alert("9");
	}
	
});

Код:

<div id="dd" onclick="bla();">dddddd</div>

vadim5june 20.05.2012 12:40

потому что она определена внутри другой функции и ее не видно на глобальном уровне

dadli 20.05.2012 12:44

vadim5june,
и можно сделать так, что внутренная функця тоже сработало если ми её визиваем например на клике на хтмл елементе ?

vadim5june 20.05.2012 12:48

так попробуйте
var bla;
$(document).ready ( function () {

bla=function() {
		alert("9");
	}
	
});

Код:

<div id="dd" onclick="bla();">dddddd</div>

dadli 20.05.2012 12:58

vadim5june,
спасибо огромное

beard 20.05.2012 21:29

vadim5june, разве это решение? со стороны смотрится как гавнокод.

У меня встречный вопрос dadli зачем ты затолкал эту функцию в
$(document).ready ( function () {

она и так будет работать и не нужно будет писать то что выше, как решение

vadim5june 20.05.2012 21:58

Цитата:

Сообщение от beard (Сообщение 175661)
vadim5june, разве это решение? со стороны смотрится как гавнокод.
У меня встречный вопрос dadli зачем ты затолкал эту функцию в
$(document).ready ( function () {

она и так будет работать и не нужно будет писать то что выше, как решение

Он мог ее туда затолкать из-за контеста-то есть на глобальном уровне она уже не будет работать
Я согласен что окончательный результат некрасивый но ведь много отвечающих-кто то поправит
А если ее нельзя оттуда вынести-как решить вопрос?

beard 20.05.2012 22:13

Если он ее привязал как он это сделал, значит там не нужно
$(document).ready

ее можно свободно написать как есть, и в ней использовать jquery, так как она сработает когда уже все прогрузится в любом случае... И не париться про $(document).ready, юзать в ней селекторы и все остальное jquery

А если уже заталкивать через $(document).ready то тогда уже глупо как по мне привязывать так, нужно элементу дать id/class и привязаться через выборку элемента + click
$("class").click(function(){})


Я понимаю что ты хотел сделать и сделал и помог и все рады наверно, но реально это жесть...

beard 20.05.2012 22:18

Цитата:

Сообщение от vadim5june (Сообщение 175667)
А если ее нельзя оттуда вынести-как решить вопрос?

если он смог видоизменить код, как ему подсказали, значит может и затереть $(document).ready(); и тд. Я не увидел ограничений автора..


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