Получить текущий 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>
|
Никак, функция имеет свой изолированный Scope и залезть в него извне не получится. Вы лучше опишите подробно, что вам нужно сделать, возможно лезть внутрь функции и не надо, или её можно переписать.
|
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>
|
Цитата:
<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>
|
scrollquest,
Вам стоит отучаться писать подобный говнокод как можно быстрее, а также матчасть подтянуть. В функции каждую переменную стоит через var объявлять, чтобы не плодить глобальных переменных, также в начале скрипта лучше 'use strict' ставить, это от многих ошибок убережёт. И обращаться к id элемента напрямую, а не через getElementById() это тоже bad practice. |
Sigizmund2012,
Я без тебя разберусь, что мне писать, а что нет. Поменьше языком ворочай, побольше мозгами, глядишь, в люди выбьешься. А на данный момент ты ноль |
Цитата:
Но у меня несколько форм, и нужно передавать номер формы, что бы соответствующе её записать, но как это сделать я не очень понимаю. <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);
|
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>
|
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);
|
Цитата:
ID или data-id элемента по которому кликнули. Сам скрипт - http://www.croppic.net Мне нужно знать с какой именно формы, был отправлен запрос. |
| Часовой пояс GMT +3, время: 15:56. |