Вызов jQuery.load в литерале объекта - PullRequest
0 голосов
/ 09 ноября 2010

Я пытаюсь изучить некоторые из более сложных шаблонов сценариев Java, используя jQuery, чтобы облегчить некоторые трудности ajax с jQuery. Однако я продолжаю сталкиваться с проблемой, которая не выдает ошибок.

Я хочу иметь возможность вызывать ajaxCalls.setup ({}) и заставить его заменить значения по умолчанию объектом, переданным в установку. У меня эта часть работает. Кажется, у меня проблемы с вызовом ajax. Когда функция callIt запускается, $ (this.defaults.element) .load (....) не запускается или, если это происходит, происходит сбой. Я довольно озадачен. Я действительно просто пытаюсь узнать что-то новое. Буду признателен за любую помощь

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
        <script>
            var ajaxCalls = (function($){

                var ajaxer = {                  

                    defaults:{
                        url:"test.php",
                        element:"#ajaxerizer"
                    },  

                    setup:function(setup){              
                        var defaulLengther = this.defaults
                        /*var l = 0;*//*bug*/
                        for (var key in defaulLengther)
                        {
                            if(setup.hasOwnProperty(key))
                            {   
                                this.defaults[key] = setup[key];
                                /*l++;*//*bug*/
                            }
                        }
                        /*debugger*/
                        /*for(var i=0; i < l; i++)
                        {
                            alert(this.defaults.power);
                        }   */      
                        this.callIt();
                    },

                    callIt:function(){
                        $(this.defaults.element).load(this.defaults.url, function(){alert("success");});
                    },


                }
                return ajaxer

            })(jQuery); 

            ajaxCalls.setup({})
        </script>

    </head>
    <body>

        <div id="ajaxerizer"></div>

    </body>
</html>

Спасибо за вашу помощь test.php просто содержит это

<p>IT WORKED</p>

примечание: в этом проекте я намеревался использовать только jQuery для выбора DOM и вызовов aJax

1 Ответ

0 голосов
/ 09 ноября 2010

Вам нужно настроить запуск ajaxCalls.setup после загрузки страницы с использованием document.ready например.

    $(document).ready(function(){
        ajaxCalls.setup({})
    });

В противном случае вы пытаетесь заменить свой div перед загрузкой html.

...