Перейти к содержимому



Как добавить к блоку функцию?

#1

Поделиться сообщением #1



hoax

hoax
  • Неактивные
  • 24 сообщений
  • Репутация: 1
0

Отправлено 30 Сентябрь 2012 - 20:22

Вот есть блок <div id="block"></div> как мне добавить к нему функцию с параметрами в html

В ссылке это делается так
<a href="javascript:func('1');" >Показать</a>

а как в блоке?

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Привязка по ID
  2. JS отправка get запроса при нажатии на div
  3. Скрипт работает только на одном блоке
  4. JavaScript скрыть показать блок, при открытии одного, другие скрываются, как?
  5. Урок (Viewport)#2 - создание выпадающих меню

#2

Поделиться сообщением #2



yury

yury
  • Пользователь
  • 632 сообщений
  • Репутация: 181

Отправлено 30 Сентябрь 2012 - 20:40

<div id="block" onclick="func('1');"></div>
Это выполнение скрипта по клику.
  • 0

#3

Поделиться сообщением #3



hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 30 Сентябрь 2012 - 20:41

не, не при клике, чтобы просто была функция
  • 0

#4

Поделиться сообщением #4



yury

yury
  • Пользователь
  • 632 сообщений
  • Репутация: 181

Отправлено 30 Сентябрь 2012 - 20:50

Что значит "чтобы просто была"?
Она ведь должна в каком-то случае выполняться?
А если нет, то зачем она там будет жить? :D
Может вам надо, чтобы по наведению мыши она выполнялась? Тогда так:
<div id="block" onmouseover="func('1');"></div>

  • 0

#5

Поделиться сообщением #5



hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 30 Сентябрь 2012 - 20:54

Нет, ну мне надо допустим, вот новость заключенная в блок <div id="block">news</div> и нужен скрипт, который бы определял дату новости (и перемещал ее), которую я буду задавать в параметрах function date(25) этого новостного блока
  • 0

#6

Поделиться сообщением #6



yury

yury
  • Пользователь
  • 632 сообщений
  • Репутация: 181

Отправлено 30 Сентябрь 2012 - 21:12

Есть подозрение, что вам нужен не яваскрипт, а php, потому что обычно новости сортируются на стороне сервера и посетителю отдаются уже в отсортированном виде.
Ну или возможно вы неполно формулируете задачу и потому непонятно, как вам помочь (например, из ваших объяснений неясно откуда скрипт возьмет дату новости и куда и зачем новость потом надо переместить).

Попробуем предположить, что у вас есть некий массив новостей, который следует вывести на экран в определенном порядке именно с помощью JS.
В таком случае вам следует просто вставить в нужное место вашей страницы вызов скрипта, который выведет этот массив, уже разложенный по блокам.
хтмл код страницы
<script type="text/javascript">
...
</script>
другой хтмл код страницы

  • 0

#7

Поделиться сообщением #7



hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 30 Сентябрь 2012 - 21:29

<div id="news1">news<span>1</span></div>
<div id="news1">news<span>2</span></div>
<div id="news1">news<span>3</span></div>
<div id="news1">news<span>4</span></div>

Где span - это число т.е. дата месяца.

есть раздел *анонсы* и раздел *завтра*
в анонсах публикуется то что написал выше, а в "завтра", все те же новости (они же блоки), только на следующий день, раз сегодня 25 число допустим, то там публкуются новости 26 числа.

В данном примере придется брать innerHTML из span, т.е. само число (допустим 1, как написано) и автоматом добавлять в "завтра* если это требуется.

Т.е. будет сравнивать

var date= new Date;
var d = date.getDate();

if(d<span.innerHTML) то вывести данную новость в блок "завтра"

  • 0

#8

Поделиться сообщением #8



yury

yury
  • Пользователь
  • 632 сообщений
  • Репутация: 181

Отправлено 30 Сентябрь 2012 - 21:33

Как я и сказал, подобную сортировку лучше выполнять на стороне сервера на php.
Но если сильно хочется, то можно и на клиентской стороне это делать, и для этого не нужно брать что-то из span, а изначально положить все в JS массив (дата-новость) и уже из него все распределить по разделам *анонсы* и *завтра* циклом с проверкой по дате типа такого
var annonce = '';
for (i=1; i<25; i++) { annonce += '<div id="news'+i+'">news<span>'+i+'</span></div>n';}
getElementById('annonce').innerHTML = annonce;

Только следует понимать, что у некоторых JS может быть отключен и они ваши новости не увидят вообще.
  • 0

#9

Поделиться сообщением #9



hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 30 Сентябрь 2012 - 21:43

Хммм... ну здесь фактически тоже самое, только я не хочу задавать целиком все из js, т.е. тут изначально анонсы пусты.

Т.е. у меня в анонсам могут быть разные числа хоть 30.09, или 05.12 в анонсах они будут все, а в завтра будут только те, кто только будут отмечатся на след. день, будут сравниваться с текущей датой, и если новость "прочрочена" удаляться.

А php я не знаю)

Ну все равно спасибо что-нибудь придумаем
  • 0

#10

Поделиться сообщением #10



yury

yury
  • Пользователь
  • 632 сообщений
  • Репутация: 181

Отправлено 30 Сентябрь 2012 - 21:55

Хммм... ну здесь фактически тоже самое, только я не хочу задавать целиком все из js, т.е. тут изначально анонсы пусты.

И откуда они тогда возьмутся, если изначально их нет?

Короче.
Я не сторонник выбора сложных решений, когда можно сделать проще.
В данном случае, самый правильный, надежный и простой вариант — это сортировка и вывод средствами php.
Второй по простоте и надежности вариант (с упомянутыми выше оговорками) — это сложить исходные данные в JS массив и сортировать и выводить его средствами же JS.
Ваш вариант — это, видимо, попытаться отпарсить конечный HTML и по результатам парсинга выполнять сортировку — это, на мой взгляд, перебор с извратом. Но если очень хочется — пытайтесь. :D
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru