У меня есть приложение ASP.NET MVC со страницами, на которых содержимое загружается в div из клиента через javascript / jquery / json. Загруженный контент содержит a-теги со ссылками на функцию, которая обновляет vaules на стороне сервера, а затем перенаправляет на перезагрузку всей страницы, хотя.
Я хочу заменить a-теги на что-то, чтобы они все еще вызывали функцию на стороне сервера, а затем перезагрузить только div.
Каков «правильный» способ сделать это?
Будьте нежны - я новичок в JS; -)
Все комментарии приветствуются,
Андерс, Дания
Это так далеко, как я дошел. getResponseCell () возвращает td-тег, заполненный a-тегом.
Я исказил предложение Гленса в дополнение .click (), но оно просто вызывает onClickedEvent ...
Пример кода:
onClickedEvent=function()
{
return false;
}
getResponseCell=function(label, action, eventId)
{
tmpSubSubCell=document.createElement("td");
link = document.createElement("A");
link.appendChild( document.createTextNode( label));
link.setAttribute("href", "/EventResponse/"+ action + "/" + eventId);
//link.setAttribute("href", "#divContentsEventList");
//link.setAttribute("onclick", "onClickedEvent(); return false;");
link.setAttribute("className", "eventResponseLink");
link.click(onClickedEvent());
// link=jQuery("<A>Kommer<A/>").attr("href", "/EventResponse/"+ action + "/" + eventId).addClass("eventResponseLink");
// link.appendTo(tmpSubSubCell);
tmpSubSubCell.appendChild(link);
return tmpSubSubCell;
}
И решение, которое сработало для меня, выглядит так:
onClickedEvent=function(event, actionLink)
{
event.preventDefault();
$("eventListDisplay").load(actionLink);
refreshEventList();
return false;
}
getResponseCell=function(label, action, eventId)
{
tmpSubSubCell=document.createElement("td");
link = document.createElement("A");
link.setAttribute("id",action + eventId);
link.appendChild( document.createTextNode( label));
actionLink = "/EventResponse/"+ action + "/" + eventId;
link.setAttribute("href", actionLink);
className = "eventResponseLink"+ action + eventId;
link.setAttribute("className", className);
$('a.'+className).live('click', function (event)
{
onClickedEvent(event,$(this).attr('href'));
});
tmpSubSubCell.appendChild(link);
return tmpSubSubCell;
}