我想從一個函數傳遞數據到一個特定的div,但我似乎無法得到這個工作。我正在製作一個圖庫瀏覽器,我只想通過我用來顯示圖片的計數器以及頁面中每個圖庫的文件總數。jQuery - 將數據從jQuery函數傳遞到特定的div?
下面是代碼:
jQuery的
$(document).ready(function() {
$('.photoset').each(function() {
$(this).data('counter', 0);
$items = $(this).find('img')
$(this).data('numItems', $items.length);
});
var showCurrent = function (photoset) {
$items = photoset.find('img');
var counter = photoset.data('counter');
var numItems = $items.length;
var itemToShow = Math.abs(counter % numItems);
$items.fadeOut();
$items.eq(itemToShow).fadeIn();
};
$('.photoset').on('click', function (e) {
e.stopPropagation();
var photoset = $(this);
var pWidth = photoset.innerWidth();
var pOffset = photoset.offset();
var x = e.pageX - pOffset.left;
if (pWidth/2 > x) {
photoset.data('counter', photoset.data('counter') - 1);
if (photoset.data('counter') < 0)
photoset.data('counter', photoset.data('numItems') - 1);
showCurrent(photoset);
} else {
photoset.data('counter', photoset.data('counter') + 1);
if (photoset.data('counter') > photoset.data('numItems') - 1)
photoset.data('counter', 0);
showCurrent(photoset);
}
$(this).text(photoset.data('counter') + 1 + " de " + photoset.data('numItems'))
});
});
的Html剃刀
<div class="container">
@{ var i = 10; }
@foreach (var item in Model)
{
<div class="row">
<div class="col-md-4 col-md-offset-4 text-center">
<br />
@Html.DisplayFor(modelitem => item.NomeGaleria)
<br />
</div>
</div>
<div class="row"><div class="col-md-4 col-md-offset-4 text-center"><div class="nav-informer"></div></div></div>
<div class="row">
<div class="photoset center-block">
@{ var item2 = item.FilePaths;}
@for (var k = 0; k < Enumerable.Count(item2); k++)
{
<br />
<img src="~/images/@Html.DisplayFor(modelItem2 => item2[k].FileName)" style="@(k != 0 ? "display: none" : "") " />
<br />
}
</div>
</div>
}
</div>
所以我想利用這個代碼
$(this).text(photoset.data('counter') + 1 + " de " + photoset.data('numItems'))
將數據傳遞給「nav-informer」div,但它不起作用。有沒有人知道在這種情況下要做什麼?對不起,如果這是一個愚蠢的問題,我很新的jQuery。
UPDATE
這裏呈現的HTML頁面:
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4 text-center">
<br />
Galeria Um
<br />
</div>
</div>
<div class="row"><div class="col-md-4 col-md-offset-4 text-center"><div class="nav-informer"></div></div></div>
<div class="row">
<div class="photoset center-block">
<br />
<img src="/images/572fdd6b-13eb-48d2-8940-23da73e056c0.JPG" style=" " />
<br />
<br />
<img src="/images/018a55be-a8a7-4412-8415-1678d01eb6a2.JPG" style="display: none " />
<br />
<br />
<img src="/images/e5b0bdcb-d517-49a5-818b-245d46c0a0d9.JPG" style="display: none " />
<br />
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-4 text-center">
<br />
Galeria Dois
<br />
</div>
</div>
<div class="row"><div class="col-md-4 col-md-offset-4 text-center"><div class="nav-informer"></div></div></div>
<div class="row">
<div class="photoset center-block">
<br />
<img src="/images/fdc2e9fd-978a-4150-87af-483e34f68798.JPG" style=" " />
<br />
<br />
<img src="/images/b17d169d-e5ed-45cd-9901-1d9dc294c873.JPG" style="display: none " />
<br />
<br />
<img src="/images/3ad1ae20-7102-4d69-b658-7b3d8cbfb9e8.JPG" style="display: none " />
<br />
<br />
<img src="/images/4ef03a84-da00-4f93-b3a2-839ac2ec9ac2.JPG" style="display: none " />
<br />
</div>
</div>
您好!謝謝回答!我之前已經嘗試過這種方法,但是由於我爲每個圖庫生成了一個新的$('nav-informer'),我最終用這種方法改變了它們。我只需要改變我目前使用的畫廊。當我點擊它時,jQuery函數只針對當前畫廊,所以這就是爲什麼我嘗試使用$(this)。 –
@ n.ab,我想我現在明白了,我已經更新了我的答案 – ntgCleaner
每個畫廊都是一個photoset div,我試着用您的答案更新並將'.container'替換爲'.photoset',但它沒有工作。文字不會出現在頁面中。 –