Получить текущий 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, время: 14:06. |