Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2008, 19:15
Новичок на форуме
Отправить личное сообщение для PaCo Посмотреть профиль Найти все сообщения от PaCo
 
Регистрация: 23.12.2008
Сообщений: 2

вопрос по ready
Доброшо всем времени суток, вобшем у меня маленький вопрос по jQyery, вернее по ready, есть вот такой код
var soundEnable = 1;

var $j = jQuery.noConflict();

$j(document).ready(function() {
	$j(document.body).append('<div id="soundContainer"></div>');
	$j(document.body).append('<div id="soundOn"></div>');
	$j('#soundOn').css('display', 'none');
	$j('#soundOn').css('width', '128px');
	$j('#soundOn').css('height', '128px');
	$j('#soundOn').css('left', '50%');
	$j('#soundOn').css('top', '50%');
	$j('#soundOn').css('margin-left', '-64px');
	$j('#soundOn').css('margin-top', '-64px');
	$j('#soundOn').css('z-index', '999999');
    $j('#soundOn').css('background', 'url(in.gif) no-repeat');
	if (!$j.browser.msie) {
		$j('#soundOn').css('position', 'fixed');	
	}
	else{
	    $j('#soundOn').css('position', 'absolute');	 
	}
});

function playSound(path) {
	var sound = path+'.swf';
	if (soundEnable) {
		if ($j.browser.msie) {
			document.getElementById('soundContainer').innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"><param name="movie" value="'+sound+'"><param name="quality" value="high"></object>';
		} else {
			$j('#soundContainer').html('<embed src="'+sound+'" width="1" height="1" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>');
		}
		$j('#soundOn').stop().css('opacity', 1).fadeIn(250).fadeOut(1500);
		 soundEnable = 0;
		 timeout = setTimeout("soundEnable = 1",2000); 
	}
}

и он работает если функция playSound(path) вызываеться например при onclick="playSound('onLine') событии, но когда я напрямую js файле пытаюсь
пытаюсь вызвать playSound('onLine') - то происходит ошибка, т.к. div создаваемые jQyery еше не созданы, как можно видоизменит фунуцию playSound(path) что бы можно было ее вызывать на прямую? Буду очень признателен за любую помошь, заранее сенкс.
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2008, 20:19
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Ну так вызывайте после того, как DIV'ы будут созданы, в чем проблема так сделать?

И почитайте документацию по jQuery, вы плохо пользуетесь возможностями, которые он предоставляет, ваш код можно переписать примерно следующим образом:
// Вызов noConflict() должен быть сразу же после jQuery
jQuery.noConflict();

var soundEnable = 1;

(function($) {
			 
	$(function() { // $(document).ready(…) писать не обязательно
		$(document.body).append('<div id="soundContainer"></div>');
		$('<div>').attr('id', 'soundOn').css({display: 'none', width: '128px', height: '128px', left: '50%', top: '50%', marginLeft: '-64px', marginTop: '-64px', zIndex: '999999', background: 'url(in.gif) no-repeat', position: $.browser.msie ? 'absolute' : 'fixed'}).appendTo(document.body);
	});

	function playSound(path) {
		var sound = path+'.swf';
		if(soundEnable) {
			$('#soundContainer').html($.browser.msie ? '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"><param name="movie" value="'+sound+'"><param name="quality" value="high"></object>' : '<embed src="'+sound+'" width="1" height="1" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>');
			$('#soundOn').stop().css('opacity', 1).fadeIn(250).fadeOut(1500);
			soundEnable = 0;
			timeout = setTimeout(function() {
				soundEnable = 1;
			}, 2000);
		}
	}

})(jQuery);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Drag & Drop вопрос f1n jQuery 3 29.06.2008 15:47
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20
Вопрос по объектам и DOM Hawk Events/DOM/Window 3 14.05.2008 15:04
Вопрос по Select.Option Гость Общие вопросы Javascript 1 18.12.2007 16:33