很明顯,我做錯了什麼。我從來沒有能夠讓.click()工作,但其他jQuery調用工作正常。MVC3-使用jQuery將onclick事件添加到鏈接
我有以下JavaScript函數:
function showParamsFor(divID) {
//Code here works when the function is called through onclick attribute
}
然後,我基本上有以下情形:
int index = 0;
foreach (var op in Model.Operations)
{
<div id="param_container[@(index)]"
<a id="show_params[@(index)]" href="#">
Edit Parameters
</a>
</div>
index++;
}
int total = index;
<script type="text/javascript" src="~/Scripts/jquery-1.6.2.min.js"></script>
for (int i = 0; i < total; i++)
{
<script type="text/javascript">
$(document).ready($('#show_params[@(i)]').click(function() {
showParamsFor('#param_container[@(i)]');
});
</script>
}
對於我的生活,我似乎無法得到這個工作。除了。點擊(),我已經使用以下方法嘗試:
.live('click', function())
.bind('click', function())
我試着刪除$(文件)。就緒並在每個場景中添加回去,但點擊該鏈接時,沒有任何反應。
我已經雙重檢查了我的id名稱,甚至嘗試使用類名稱作爲鏈接(.show_params [@(i)])而不是id。 Whaat我在這裏做錯了嗎?
編輯
我使用一個循環,因爲我有這些鏈接的動態列表。我需要在每個鏈接都需要對每個其他鏈接的引用後爲每個鏈接綁定一個點擊事件。
你意識到你正在嵌入儘可能多的腳本,因爲索引是正確的嗎?這似乎是一個不好的方法來做到這一點。 – TheZ 2012-07-06 20:09:54
您可以在腳本標記內運行一個循環的剃鬚刀,以便您擁有一個具有一個document.ready事件的腳本,並將該方法調用N次。還有更好的方法,但這至少會削減腳本。 – Tyrsius 2012-07-06 20:11:28
ViewBag.index是否返回唯一索引?如果是這樣,只需將錨標記的標識設置爲索引,然後將其傳遞給showParamsFor()。或者使用html5數據參數,並從中獲取id(不知道jquery 1.6是否支持它) – 2012-07-06 20:14:49