2011-03-26 28 views
1

我有一個日期選擇器(定位於西班牙語):我如何使用.Live()jQuery函數與JQuery UI日期選擇器?

$(document).ready(function() { 
    $("#datepicker").datepicker(
     { dateFormat: 'dd/mm/yy', 
      dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'], 
      monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 
       'Junio', 'Julio', 'Agosto', 'Septiembre', 
       'Octubre', 'Noviembre', 'Diciembre'], 
      monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 
       'May', 'Jun', 'Jul', 'Ago', 
       'Sep', 'Oct', 'Nov', 'Dic'], 
      onSelect: function (dateText, inst) { 
       var form = $(form); 
       $.ajax({ 
        url: "/Trabajo/", 
        type: "POST", 
        data: { dia: dateText }, 
        success: function (result) { 
         $('#trabajos').replaceWith($('#trabajos', $(result))); 
        } 
       }); 
       return false; 
      } 
     }); 
}); 

其完美的工作,它的更新#trabajos分度,新信息,但DOM不可更新。我知道.live()是爲了那個,但作爲jquery noobish,我如何改變這個代碼來實現實時功能?

謝謝。

PS:如果有一個asp.net mvc的人,如果我的形式是這樣的:

@using (Ajax.BeginForm("/Trabajo/", new AjaxOptions { UpdateTargetId = "trabajos" })) 

爲什麼我必須手動更新它的成功FUNC?

回答

0

嘗試這樣的:

$(document).ready(function() { 
    attachDatePicker(); 
}); 

function attachDatePicker() { 
    $('#datepicker').datepicker({ 
     dateFormat: 'dd/mm/yy', 
     dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'], 
     monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'], 
     monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'], 
     onSelect: function (dateText, inst) { 
      var form = $(form); 
      $.ajax({ 
       url: '/Trabajo/', 
       type: "POST", 
       data: { dia: dateText }, 
       success: function (result) { 
        $('#trabajos').replaceWith($('#trabajos', $(result))); 
        // reattach the datepicker if you updated 
        // the corresponding DOM element 
        attachDatePicker(); 
       } 
      }); 
      return false; 
     } 
    }); 
} 

備註:從來沒有硬編碼的URL在你的JavaScript文件,你在你的AJAX調用的url屬性一樣。總是Url助手。因此,而不是:

url: '/Trabajo/' 

使用:

url: '@Url.Action("Index", "Trabajo")' 
        ^  ^
        action controller 
+0

謝謝,但沒有工作,頁面的更新,但現在DOM沒有,而另一方面,在頁面中,我不得不點擊鼠標右鍵多次顯示上下文菜單,很奇怪。 – 2011-03-26 20:21:22

+0

@Jesus Rodriguez,「頁面更新但DOM不是」意味着什麼?你得到一個JavaScript錯誤? – 2011-03-26 20:23:43

+0

@Darin Dimitrov頁面顯示更改,但DOM未更新。一個錯誤,就是這樣:「element.getAttribute不是一個函數」在ajax unobstrusive.js中。 – 2011-03-26 20:36:18