這可能很容易,但我已經搜索過,並嘗試了一些建議,沒有這些工作。我正在使用一個MVC編輯器模板,它具有一個標準的HTML按鈕和其他字段的div。當我將一個集合傳遞給模板時,它將使用唯一的ID呈現集合中每個項目的字段。然後,我想打開一個對話框,當任何按鈕被點擊。按鈕呈現爲這樣的編輯模板中:將事件添加到同一類的所有按鈕與jQuery
@model ProductViewModel
<span>
<button id="[email protected](ViewData.TemplateInfo.HtmlFieldPrefix)" class="sig-button ie-shadowed select-tag" type="button" title="Select tags..." style="margin-right: 10px">Select tags</button>
</span>
// other fields
所以,如果我通過收集與2個對象編輯模板,我得到的HTML如下:
<button title="Select tags..." class="sig-button ie-shadowed select-tag" id="btnSelectTags-Products[0]" style="margin-right: 10px;" type="button">
// other fields then next item:
<button title="Select tags..." class="sig-button ie-shadowed select-tag" id="btnSelectTags-Products[1]" style="margin-right: 10px;" type="button">
這似乎很好,給每個按鈕一個唯一的ID。他們需要有一個唯一的id(我認爲),因爲每個div中的項目都可以擁有自己的一組標籤。所以我想一個click事件添加到每個按鈕,將打開一個對話框,使用這個jQuery(我試過,包括在選擇也是其他類和嘗試沒有「按鈕」):
if ($("button.select-tag")) {
$(".select-tag").click(function() {
showTagDialogBox();
});
}
這裏的當標籤得到呈現在div:
<div style="display: none">
<div id="tagDialogBox" title="Add Tags">
@Html.EditorFor(x => x.ProductViewModels)
</div>
</div>
這裏的showTagDialogBox功能:
function showTagDialogBox() {
$('#tagDialogBox').dialog({
autoOpen: false,
title: "Select Tags",
modal: true,
height: 530,
width: 700,
buttons: {
"Save": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
return false;
}
然而,當我點擊任何按鈕沒有任何反應 - 我沒有得到任何錯誤的js Firebug。任何人都可以發現我可能做錯了什麼嗎?這裏是什麼,我試圖做一個PIC:
我想你的建議,但它仍然無法正常工作 – 2012-07-25 06:55:26