我的* .aspx页面(主页):
function getEmployeeHours(employeeId,year,month) {
$('#clocked-details').load('/Employees/GetEmployeeClockedHours/',{ 'employeeId': employeeId,'year': year,'month': month });
};
我的部分视图* .ascx:
<td>
<button id="btnSave" type="button" class="actionButton">
Save</button>
</td>
如上面的代码片段,我需要从主视图中获取部分视图 btnSave 来触发点击事件。
我在主视图中写了下面的代码。
$('#btnSave').off('click').on('click', function () {
var yearValue = $("#year").val();
var monthValue = $("#month").val();
$.ajax({
url: "/Employees/UpdateEmployeeClockedHoursByProvider",
type: 'POST',
cache: false,
data: { employeeId: employeeId, year: yearValue, month: monthValue },
success: function (result) {
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
return false;
});
但它没有触发。我正在使用加载 jquery方法异步加载我的局部视图。
所以我的问题是如何触发局部视图的点击事件?
答案 0 :(得分:9)
由于您的html动态加载到页面中,因此您必须为DOM
查询提供更多上下文。
试试这个。
$(document).on('click', '#bntSave', function(){
//do stuff
});
答案 1 :(得分:1)
由于包含按钮的用户控件是动态加载的,因此您可以使用("#btnSave").live("click"){...}
jquery事件,同时将脚本保留在主视图中,这可以跟踪将来添加到DOM的控件。因此,只要出现与“live(..)”的指定选择器匹配的控件,该事件就会自动换行。
希望这对你有所帮助。