JQuery обратного вызова и проблема вложенности - PullRequest
0 голосов
/ 11 сентября 2009

Я очень запутался и не знаю, как с этим справиться, возможно, вы мне поможете:)

Я сделал html-страницу с меню, которое загружает внешний контент в div (все сделано с помощью jquery и ajax-load).

Если я хочу добавить вторую функцию, ничего не происходит, и я не уверен насчет вложения, правильно это или нет.

Вот две функции: первая загружает целую HTML-страницу, вторая загружает внешний div в div предыдущего загруженного файла (надеюсь, что я описал его так, чтобы вы могли его понять :)) (numRand - это случайное число, не важное для вопроса).

function changeMenu(menupunkt) {
$(function(){
    $('#mainContent').fadeOut('fast', function(){ $("#mainContent").load(menupunkt+".html?"+numRand);});
    $('#mainContent').fadeIn('fast');});
    return false;

}

Вот второй код:

function changeSubMenu(submenupunkt,subdiv) {
    $(function(){
        $('#htmlContainer').fadeOut('fast',function(){ $("#htmlContainer").load(submenupunkt+".html?"+numRand+" div#"+subdiv);});
        $('#htmlContainer').fadeIn('fast');});
        return false;

}

Я хочу объединить две функции, чтобы я мог вызвать функцию:

someFunction(menupunkt,submenupunkt,subdiv)

Это должно сначала загрузить menupunkt.html, и если это действие завершено, оно должно загрузить div.

если я хочу загрузить только menupunkt, а не submenupunkt или subdiv, как я могу вызвать функцию?

Надеюсь, я смогу объяснить свой вопрос, чтобы вы, ребята, могли за ним ответить, немного сложнее, я знаю:)

Заранее спасибо!

1 Ответ

1 голос
/ 11 сентября 2009

прежде всего

$(function() { .... code here .... }); 

является сокращением для

$(document).ready(function() { .... code here .... });

, который является способом jQuery для настройки функции, выполняемой при загрузке DOM. вы используете это внутри своих функций changeMenu и changeSubMenu, что не является обязательным (, если вы не выполняете обе функции сразу, когда страница начинает загружаться, но это будет странно способ настроить вещи).

Команда load() принимает функцию обратного вызова, которая будет выполняться после завершения загрузки. Например,

$("#mainContent").load(menupunkt+".html?"+numRand, [callback here]);

[callback] может быть либо анонимной функцией (встроенная функция), либо именованной функцией.

Надеюсь, это поможет

...