[英]Call jQuery function in a loop with different parameters
在此示例之后,我試圖在一頁中創建多個輪播。
我在foreach循環中創建輪播,並為每個輪播分配名稱c0,c1,c2等(每個輪播都是<div>
)
現在,為了根據示例運行腳本,我應該分別在每個輪播中運行。
例如:
<script type="text/javascript">
$(document).ready(function() {
$('#c0').jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true, masked: false, itemstodisplay: 3, orientation: 'v' });
$('#c1').jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: false, masked: false, itemstodisplay: 5, orientation: 'h' });
$('#c2').jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true, masked: true, itemstodisplay: 5, orientation: 'h' });
});
</script>
由於我的輪播是在foreach循環中創建的,因此我不知道將有多少個,因此我嘗試在for循環中調用該函數:
for (int i = 0; i < counter; i++)
{
string cNum = "#c" + i.ToString();%>
<script type="text/javascript">
$(document).ready(function() {
$(cNum).jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true });
});
</script>
<%} %>
我檢查了一下, cNum
值還可以,它得到的值是#c0,#c1等,但是它不能識別出它與最初存在的'#c0'等價。
如何在函數中插入動態輪播名稱?
不必這樣做,只需給每個div一個類。 像這樣:
<div class="someClassThatIKnowIsACarousel">
然后,您不需要循環:
$(".someClassThatIKnowIsACarousel").jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true });
您的代碼中的問題在於,動態生成的JavaScript部分中的cNum
不會被解釋為ASP變量。 您可以使用$('<% cNum %>')
類的方法來解決此問題(還要注意JavaScript引號,如果沒有得到,則會得到$(#c0)
,這是錯誤的)。
但是,您的方法是錯誤的,請盡量避免那樣的服務器/客戶端代碼混合使用。
正如阿奎納斯已經指出的那樣,最好的解決方案是向div中添加一個類:
HTML:
<div class="carousel">
JavaScript:
$('div.carousel').jsCarousel({ ... });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.