Как я могу получить preventDefault для правильной работы в этом контексте? Если пользователь нажимает на гиперссылку, страница перезагружается, я стараюсь предотвратить это действие по умолчанию. Как правило, я бы поймал событие щелчка или что-то в этом роде, но я вызываю функцию непосредственно из гиперссылки. Я не знаю, как это сделать. Любая помощь приветствуется.jquery предотвратить вопросы по умолчанию
<a href='' onclick="javascript:OpenModal(<?=$val->Prodid;?>);"><?=$val->ProdDesc;?>
<script>
function OpenModal(id) {
OpenModal.preventDefault(); //this does not work, but is here to show what I'm trying to do.
$.ajax({
url: "?url=Inventory/detail/"+id,
type: "POST",
success: function (data) {
$('#divDetail').html(data);
$('#divDetail').dialog({
modal: true,
width: 'auto'
});
}, error: function(jqXHR, textStatus, errorThrown){
alert('error'.textStatus.errorThrown);
}
});
}
</script>
, если я добавлю:
<a href='' onclick="javascript:OpenModal(<?=$val->Prodid;?>); return false;"><?=$val->ProdDesc;?>
он работает правильно, но я бы себе представить, что это своего рода хак, а не надлежащим образом делать вещи. Мысли?
надлежащим образом в настоящее время не использовать встроенные события. Почему бы просто не дать ему идентификатор и добавить прослушиватель событий и использовать preventDefault()? –
Не рекомендуется использовать короткий и закрытый тег php, о нет. – Edward
@edward - на самом деле, этот анти короткий тренд тега прошел. Теперь принято, как будто эта атака так и не произошла. –