0
我遇到了這個奇怪的問題,這讓我有點瘋狂。我有一個MVC 5項目,它有一個局部視圖,當點擊一個按鈕時它會作爲模態出現。問題是,我必須連續兩次單擊按鈕才能觸發部分視圖方法。顯然這是因爲我使用$(document)
作爲選擇器來觸發事件。否則它工作正常。我必須使用$(document)
作爲選擇器,因爲我正在動態生成按鈕,並且使用任何其他選擇器都不會註冊點擊處理程序。 這是我的模式容納:部分視圖模式呈現雙擊
<div id="modal-container" class="modal fade"
tabindex="-1" role="dialog">
<div class="modal-content">
</div>
</div>
這裏有一個按鈕觸發事件的HTML:
<a class="modal-link" href="/Customer/EditGroup/@item.Customer_Group_Code">
<img src="~/images/editIcon.png" alt="Edit" />
</a>
jQuery的方法,我調用看起來像這樣:
$(document).on('click', '.modal-link', function (e) {
e.preventDefault();
$(this).attr('data-target', '#modal-container');
$(this).attr('data-toggle', 'modal');
});
和這裏是視圖的控制器方法:
public ActionResult EditGroup(int id)
{
ViewBag.id = id;
return PartialView("_EditGroup");
}
它與'$(document)'無關。你在'第一'點擊所做的就是添加'data-target'和'data-toggle'屬性。在第二次點擊中,因爲現在存在這些屬性,所以現在已經觸發了模式(但是您再次添加了一些有點沒有意義的屬性)。你需要給出更多關於你實際做什麼的背景,但是最初需要添加'data- *'屬性 –
你是對的。我基本上是按照這樣的方式學習了一個教程。我將數據屬性添加到固定它的按鈕上。 Sill這很奇怪,爲什麼當我使用除$(document)以外的其他選擇器時,模式彈出 – psyoptica