обратный вызов jquery и проблема с вложенностью

StackOverflow https://stackoverflow.com/questions/1410868

  •  05-07-2019
  •  | 
  •  

Вопрос

Я действительно в замешательстве и не знаю, как быть дальше, возможно, вы сможете мне помочь :)

Я создал 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, как я могу вызвать функцию?

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

Заранее благодарю вас!

Это было полезно?

Решение

прежде всего

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top