1

加载.js:

jQuery(document).ready(function($) {
    $('.dialog ul li').click(function(e) {
        switch($(this).attr('id')) {
        case 'addProject':
            $('.addDialog').load('/add/addprojectform');
            break;
        case 'addTask':
            $('.addDialog').load('/add/addtaskform');
            $('#dueDate').datePicker();
            break;
        }
    });
});  

这是在标题中:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript">
$.noConflict();
</script>
<script src="js/utils.js"></script>
<script src="js/load.js"></script>  

我得到的错误是:

Uncaught TypeError: Object [object Object] has no method 'datePicker' load.js:10
(anonymous function) load.js:10
f.event.dispatch jquery.min.js:3
f.event.add.h.handle.i jquery.min.js:3  

我尝试了几种方法来修复它,但错误仍然存​​在。是什么导致了错误?谢谢

4

1 回答 1

1

由于load执行异步 ajax 调用并且元素#duedate位于资源内,因此您必须等待调用结束,然后才能使用应用于该元素的方法

done()由于 jQuery 上的任何 ajax 方法都返回一个延迟对象,因此您可以在回调中继续执行代码

$('.addDialog').load('/add/addtaskform').done(function() {
    $('#dueDate').datePicker();
});

或使用简单的成功回调

$('.addDialog').load('/add/addtaskform', function() {
    $('#dueDate').datePicker();
});
于 2012-06-22T10:11:25.837 回答