我目前正在創建一個MVC4 web應用程序,我似乎遇到了一個奇怪的問題。我創建了一個無序列表,其中包含一些列表項以及它們各自的錨點標籤,我可以點擊它們,這將返回相應的視圖。在DOM元素上調用preventDefault
<div>
<ul>
<li>
<a class="ajax" href="/Test/One"></a>
</li>
<li>
<a class="ajax" href="/Test/Two"></a>
</li>
<li>
<a class="ajax" href="/Test/Three"></a>
</li>
<li>
<a class="ajax" href="/Test/Four"></a>
</li>
</ul>
</div>
<div id="body">
</div>
我已經然後創建了一些jQuery的,當您單擊錨標記,尋找一類「AJAX」的打電話,如果你點擊的錨標記,它會再運行另一個叫功能GetContent,傳遞錨定標記的值,該值將被用作ajax調用的路徑。
$(document).ready(function() {
$(".ajax").click(function() {
var path = $(this).attr("href");
GetContent(path);
});
});
function GetContent(path) {
$.ajax({
url: path,
type: 'POST',
async: false,
success: function (result) {
$("#body").html(result);
}
});
}
我聽到一個功能,您可以打電話,叫的preventDefault我相信的。我發現我不知道何時調用此preventDefault來覆蓋錨點標記的點擊。
我嘗試將它放到幾個位置,但沒有運氣......我現在發現我可以單擊任何錨點標記,並且發生默認操作,它只是返回整個加載新視圖的網站。但是,如果我在google chrome開發人員工具中打開控制檯,並調用函數GetContent,通過期望的路徑傳遞,它將調用函數,返回ajax並更新我的網頁。
如果有人能夠指出我應該在哪裏調用preventDefault函數,那會很棒。
*「我聽說過,我相信一個功能,您可以打電話,叫了preventDefault的。」 *我,這樣也已經聽到傳言一個函數。在網絡的叢書中已經有很多報道。或者等一下,** [在文檔中](http://api.jquery.com/event.preventDefault/)**。而且!文檔中的示例阻止鏈接的默認操作。發誓。 –
在click處理函數中使用'return false;'或者只是在函數(e)中傳遞一個參數,並在click處理函數後面使用'e.preventDefault()'。 – Jai
謝謝T.J,真的很感謝這個諷刺...我只是jquery的新手,所以給我一個休息... 謝謝Jai,感謝幫助。 – OhTehNoes