01.09.2016, 16:18
|
|
Аспирант
|
|
Регистрация: 11.04.2014
Сообщений: 60
|
|
Получить текущий id
Добрый день. Подскажите пожалуйста, как можно получить id (а лучше data-id) вне функции.
Вот так все работает.
<div id="id3" onclick="give(this.id)" data-id="3"></div>
<script>
function give(val) { numbPic = val; console.log(numbPic);}
</script>
Но если вынести console.log за пределы, то ничего не отображается.
<script>
function give(val) { numbPic = val; }
console.log(numbPic);
</script>
|
|
01.09.2016, 16:48
|
|
Профессор
|
|
Регистрация: 16.07.2014
Сообщений: 267
|
|
Никак, функция имеет свой изолированный Scope и залезть в него извне не получится. Вы лучше опишите подробно, что вам нужно сделать, возможно лезть внутрь функции и не надо, или её можно переписать.
|
|
01.09.2016, 17:00
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Sigizmund2012,
Че ты несешь, какой нахуй скоп? Как у него выведется переменная, которая еще не определена? Вы охуели что-ли тут, профессора?
<html>
<body>
<div id="id3" onclick="give(this.id)" data-id="3">click me before</div>
<button id = "b">
show id
</button>
<script>
function give(val) { numbPic = val; }
b.onclick = function(){console.log(numbPic); }
</script>
</body>
</html>
|
|
01.09.2016, 17:05
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Сообщение от light
|
а лучше data-id
|
<html>
<body>
<div id="id3" onclick="give(this)" data-id="3">click me before</div>
<button id = "b">
show id
</button>
<script>
function give(object) { v = object.getAttribute("data-id") }
b.onclick = function(){console.log(v)}
</script>
</body>
</html>
|
|
01.09.2016, 17:15
|
|
Профессор
|
|
Регистрация: 16.07.2014
Сообщений: 267
|
|
scrollquest,
Вам стоит отучаться писать подобный говнокод как можно быстрее, а также матчасть подтянуть. В функции каждую переменную стоит через var объявлять, чтобы не плодить глобальных переменных, также в начале скрипта лучше 'use strict' ставить, это от многих ошибок убережёт. И обращаться к id элемента напрямую, а не через getElementById() это тоже bad practice.
|
|
01.09.2016, 17:21
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Sigizmund2012,
Я без тебя разберусь, что мне писать, а что нет. Поменьше языком ворочай, побольше мозгами, глядишь, в люди выбьешься. А на данный момент ты ноль
|
|
01.09.2016, 17:30
|
|
Аспирант
|
|
Регистрация: 11.04.2014
Сообщений: 60
|
|
Сообщение от Sigizmund2012
|
Никак, функция имеет свой изолированный Scope и залезть в него извне не получится. Вы лучше опишите подробно, что вам нужно сделать, возможно лезть внутрь функции и не надо, или её можно переписать.
__________________
|
Есть скрипт кропа картинок. Он в общем то работает отлично.
Но у меня несколько форм, и нужно передавать номер формы, что бы соответствующе её записать, но как это сделать я не очень понимаю.
<div id="candy1" onclick="give(this.id)" class="left picAdd" data-id="1"></div>
<div id="candy2" onclick="give(this.id)" class="left picAdd" data-id="2"></div>
var croppicContainerEyecandyOptions = {
uploadUrl:'http://'+window.location.hostname+'/img_save_to_file.php',
cropUrl:'http://'+window.location.hostname+'/img_crop_to_file.php',
imgEyecandy:false
}
var candy1 = new Croppic('candy1', croppicContainerEyecandyOptions);
var candy2 = new Croppic('candy2', croppicContainerEyecandyOptions);
|
|
01.09.2016, 18:27
|
|
Профессор
|
|
Регистрация: 16.07.2014
Сообщений: 267
|
|
light,
Не до конца понимаю, что вы хотите сделать. Данный код передаёт в конструктор Croppick данные из атрибута data-id:
<div id="candy1" class="left picAdd" data-id="1"></div>
<div id="candy2" class="left picAdd" data-id="2"></div>
<script>
'use strict';
var croppicContainerEyecandyOptions = {
uploadUrl:'http://'+window.location.hostname+'/img_save_to_file.php',
cropUrl:'http://'+window.location.hostname+'/img_crop_to_file.php',
imgEyecandy:false
};
function cropper( event ){
var data = this.getAttribute( 'data-id' );
new Croppic( data, croppicContainerEyecandyOptions);
}
var candy1 = document.getElementById( 'candy1' );
var candy2 = document.getElementById( 'candy2' );
candy1.onclick = cropper;
candy2.onclick = cropper;
</script>
|
|
01.09.2016, 18:35
|
|
Аспирант
|
|
Регистрация: 11.04.2014
Сообщений: 60
|
|
Sigizmund2012,
Мне нужно передать в файл img_save_to_file.php переменную 1 или 2.
Что то вроде такого (это не работает)
var croppicContainerEyecandyOptions = {
uploadUrl:'http://'+window.location.hostname+'/img_save_to_file.php?f1='+$('#candy1').attr('id'),
cropUrl:'http://'+window.location.hostname+'/img_crop_to_file.php'
}
var candy1 = new Croppic('candy1', croppicContainerEyecandyOptions);
|
|
01.09.2016, 18:38
|
|
Аспирант
|
|
Регистрация: 11.04.2014
Сообщений: 60
|
|
Сообщение от Rise
|
light, куда передавать номер нужно и что значит соответствующе её записать?
|
Нужно передать в php файл - img_save_to_file.php
ID или data-id элемента по которому кликнули.
Сам скрипт - http://www.croppic.net
Мне нужно знать с какой именно формы, был отправлен запрос.
|
|
|
|