Я создаю плагин, который соответствует элементу, находит ссылку внутри него и заставляет родительский элемент перемещаться в это место по клику.Связывание события click jQuery с каждым элементом в цикле foreach
У меня есть цикл в основном корпусе:
return this.each(function(options)
{
$to_link = $(this); //matched object
link_href = $('a', $to_link).attr('href'); //link location
$($to_link,$parent)
.click(function(){alert(link_href); window.location = link_href; return false;})
.attr('title','Jump to ' + link_href);
})
который я бегу это против этого HTML
<div id="a"><h2><a href="/products/">Products</a></h2><p>blah blah</p></div>
<div id="b"><h2><a href="/thinking/">Thinking</a></h2><p>liuhads</p></div>
У меня есть проблема в том, что функция нажмите всегда приводит в прыжках в значение последнего совпадающего элемента div, хотя заголовок элемента имеет правильное значение.
Чтобы уточнить, поведении материала должно быть:
ДИВ # а имеет название «Перейти к/продукции /» и при нажатии на идет к/Продукты/
ДИВ # а имеет титул «Перейти к/мышлению /» и при нажатии на идет к/мышлению/
вместо этого, что случается:
ДИВ # а имеет название «Перейти к/продукции /» и при нажатии на идет к /мышления/ (предупреждение говорит/мышления/тоже)
ДИВ # а имеет название «Jump to/thinking /» и при нажатии на кнопку/мышление/
ie div # a заканчивается неправильным поведением. Я предполагаю, что это какая-то проблема, но для жизни я не вижу ее, помогу!
Вскоре после этого я узнал, как замыкания действительно работают, после чего я точно узнал, что JS действительно способен, читая Crockford! – Sqoo
Таким образом, реальный ответ - это использование замыканий, создающих новую область видимости. – Sqoo
ответ # 2 потрясающе! Решила мою проблему :) – Yasser