#php #javascript #jquery #variables
#php #javascript #jquery #переменные
Вопрос:
Итак, у меня есть этот PHP-код
</div>
<div id="topmusicartisttitle">Top 5 Music Artist</div>
<div class="edit"><a href="" name="topartistsedit">edit</a></div>
<div id="topmusicartistlist">
<ul>
...
это в основном передает список вещей, и я хочу иметь возможность щелкнуть по этой ссылке в javascript, но я не хочу, чтобы она куда-либо уходила, я просто хочу поймать щелчок и обработать его. Итак, для начала у меня есть:
$('a[name=birthdayedit').live('click',function(e){
e.preventDefault();
});
Но, похоже, это не работает. Я проверил firebug, и там есть href и имя (очевидно), но щелчок не зарегистрирован в Javascript, и он все равно перенаправляется. Я предполагаю, что live — это функция, которую нужно использовать, поскольку это в значительной степени динамически создаваемый контент. Кто-нибудь знает, что я делаю не так?
Комментарии:
1. Вы пробовали включить
return false;
в свой обработчик кликов?2. В
birthdayedit
вашем фрагменте нет именованного поля, и вам не хватает закрытия]
в селекторе jquery.3.
$('a[name=birthdayedit')
является ошибкой. Сравните с$('a[name=birthdayedit]')
.4. Если вы разместите окно. предупреждение («Щелчок»); в обработчике щелчка вы получаете предупреждение? Вы можете попробовать добавить «]», чтобы закрыть часть «a[name=]».
5. У вас отсутствует закрывающая квадратная скобка
$('a[name=birthdayedit')
. Кроме того, имя там не совпадает с именем в вашем HTML!
Ответ №1:
Изменить
$('a[name=birthdayedit')
Для
$('a[name=topartistsedit]')
или измените имя в вашем HTML.
Ответ №2:
Я вижу несколько ошибок:
- В закрывающей скобке (a
]
) нетa[name=birthdayedit'
- Атрибут name в HTML отличается от того, на который ссылается JS.
Комментарии:
1. Спасибо всем, как-то я пропустил эту закрывающую скобку. С моей стороны также было глупо не публиковать СООТВЕТСТВУЮЩИЙ раздел javascript. По какой-то причине я просто выбрал один вместо правильного. Еще раз спасибо!
Ответ №3:
Проще изменить ваш HTML, чтобы использовать такой идентификатор:
<div class="edit"><a href="#" id="topartistsedit">edit</a></div>
И затем вы можете зафиксировать щелчок следующим образом:
$("#topartistsedit").click(function() {
// do what you want in the click function
return(false); // returning false stops default behavior and propagation
});
или если содержимое создается динамически после загрузки страницы:
$("#topartistsedit").live("click", function() {
// do what you want in the click function
return(false); // returning false stops default behavior and propagation
});
Пример здесь: http://jsfiddle.net/jfriend00/8FgFP /