我有它加載的內容,應將其更換成一個div元素的簡單方法:jQuery的負載腳本執行多次
<script>
console.log('Running...')
</script>
:
$("a[data-ajax='true']").on('click', function (event) {
event.preventDefault();
var goToLink = this.href;
animateLink(this);
$('#ajax-target').fadeTo(0.2, 0.5, function() {
lastLink = currentLink;
currentLink = goToLink;
$('#ajax-target').load(goToLink, {}, function() {
$('body').scrollTop(0);
$('#ajax-target').fadeTo('slow', 1);
});
});
});
現在我每包含以下代碼AJAX的HTML代碼加載
我第一次點擊加載ajax的鏈接,我在控制檯上看到'Running ...'按預期方式運行。第二次我這樣做,'Running ...'在控制檯上打印兩次。第三次,我在控制檯上得到4次這樣的消息,依此類推。我無法弄清楚問題出在哪裏。當我根據ajax請求加載HTML代碼並將其替換爲每個html()方法時,同樣的問題。有人知道什麼是錯的嗎?
編輯 答案後,在這裏我現在有下面的代碼其中工程:
<script>
var currentLink, lastLink;
function animateLink(obj) {
var el = $(obj);
var animate = el.attr('data-animation');
if (animate != undefined) {
animate = animate.toLowerCase();
animate = animate == 'false' ? false : true;
} else {
animate = true;
}
if (animate) {
el.toggle('explode');
}
}
$(document).ready(function() {
$("a[data-ajax='true']").on('click', function (event) {
event.stopImmediatePropagation();
event.preventDefault();
var goToLink = this.href;
animateLink(this);
$('#ajax-target').fadeTo(0.2, 0.5, function() {
lastLink = currentLink;
currentLink = goToLink;
$('#ajax-target').load(goToLink, {}, function() {
$('body').scrollTop(0);
$('#ajax-target').fadeTo('slow', 1);
});
});
});
});
function historyBack() {
$('#ajax-target').fadeTo(0.2, 0.5, function() {
var newLink = lastLink;
lastLink = this.href;
currentLink = newLink;
$.get(newLink, {}, function (response) {
$('body').scrollTop(0);
$('#ajax-target')
.html(response)
.fadeTo('slow', 1);
});
});
}
</script>
這是坐落在網站上。當ajax請求完成時,這部分不會被刪除。它總是改變的部分如下:
<div class="content-wrapper" id="ajax-target">
@Html.Partial("LayoutContentHeader")
<section class="content">
@RenderBody()
</section>
</div>
網頁加載是一個MVC頁面,在主框架不包含任何HTML或BODY標籤,它需要被替換,另外只有內容有時腳本(如何我上面的腳本):
@if (IsAjax)
{
if (isMainLayout)
{
@Html.Partial("LayoutContentHeader")
<section class="content">
@RenderBody()
</section>
}
else
{
@RenderBody()
}
<script>
$(function() {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
}
正如你所看到的,當我們在一個Ajax請求,只送上我的重要內容。
而按壓鏈路的代碼是例如:
<a href="/wilhelmshaven/hse/" data-ajax="true" class="btn btn-block btn-social" style="color: white !important; background-color: rgb(243,156,18)">
<i class="fa fa-th"></i>HSE
</a>
與周圍沒有鏈路(這可迫使鼓泡)。
鑑於以上這些代碼片段,我還需要知道如何創建並添加''元素,還需要知道'$ ('a [data-ajax ='true']「)。on('click',function(event)'哪個頭文件有這個聲明?你是動態添加'a'元素還是你的部分視圖之一有靜態HTML? – hina10531
Both。首先我加載完整的頁面,其中包含這個ajax類型的鏈接,加載的頁面包含相同的鏈接,我將向你發送一個私人消息現在使用完整的HTML代碼和完整的代碼與ajax加載的東西。等一下。 –
啊不能發私人訊息。我的信息足夠了嗎?我注意到stopImmediatePropagation()停止了事件的冒泡。但這不成問題,A標籤不是嵌套的。 –