dicem
@dicem

Почему click( func()) выполняется сам по себе?

Здравствуйте. Столкнулся с проблемой. Имею следующий код:
$(document).ready( function(){

	function changeScene(scene){ // call only
		$(this).closest('.scene').fadeOut(300)
		$('#'+scene).fadeIn(300)
	}

	$('#gotoGameMode').click( changeScene.call(this, 'gameMode'))

})

и HTML:
<div class="scene" id="menu" style="display: block">
			<ul>
				<li><a href="#" id="gotoGameMode">Играть</a></li>
			</ul>
		</div>
		<div class="scene" id="gameMode" style="display: none">
			<div class="gmWrap">
				<div class="item">
					<a href="#" id="modeHandly">
						<img src="" alt="">
						<p>Вручную</p>
					</a>
				</div>
				<div class="item">
					<a href="#" id="modeRandom">
						<img src="" alt="">
						<p>Рандомно</p>
					</a>
				</div>
			</div>
		</div>


Проблема заключается в том, что данная конструкция:
$('#gotoGameMode').click( changeScene(this, 'gameMode'))
исполняется сама по себе, без клика по элементу.
Прошу помощи.
  • Вопрос задан
  • 89 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
$('#gotoGameMode').click( () => changeScene.call(this, 'gameMode'))
Ответ написан
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Ну так вы выполняете changeScene.call(this, 'gameMode') и результат выполнения передаете в click
Пишите так
$('#gotoGameMode').click( changeScene.bind(this, 'gameMode'))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы