3

我的 *.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 方法来异步加载我的部分视图。

所以我的问题是我应该如何触发部分视图的点击事件?

4

2 回答 2

20

由于您的 html 是动态加载到页面中的,因此您必须为DOM查询提供更多上下文。

尝试这个。

$(document).on('click', '#bntSave', function(){
  //do stuff
});
于 2013-03-15T16:17:22.133 回答
0

由于包含按钮的用户控件是动态加载的,因此您可以("#btnSave").live("click"){...}在将脚本保留在主视图中的同时使用 jquery 的事件,这样可以跟踪将来添加到 DOM 中的控件。因此,只要出现与“live(..)”的指定选择器匹配的控件,该事件就会自动连接起来。

希望这对您有所帮助。

于 2013-03-20T19:22:07.883 回答