2013-02-20 2 views
0

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

Я попытался отправить его с URL как переменную GET. Я попытался отправить его после URL в фигурных скобках и получить как POST. Я попытался установить глобальную переменную, но я уверен, что это вне сферы действия, и я все равно не могу ее получить.

Вот некоторые соответствующий код:

$(document).ready(function() { 

    $("a.slide0").click(function() { 
     $('#revealLayer').load('slideshow1.html?slide=0'); 
     $('#revealLayer').appendTo('#revealModal'); 
     $('#revealModal').reveal(); 
     return false; 
    }); 

    $("a.slide1").click(function() { 
     $('#revealLayer').load('slideshow1.html?slide=1'); 
     $('#revealLayer').appendTo('#revealModal'); 
     $('#revealModal').reveal(); 
     return false; 
    }); 

}); 

Как я могу получить это на приемном конце? Помогите!

ответ

1

Уже объяснялось, как сделать это в этом посте здесь: problems with jquery load()

Быстрый Макет (не тестировался):

Предполагается, что #revealModal - это div, в котором вы хотите i nformation in, и что slideshow1.html? slide = [0-1] urls на самом деле ссылаются на файлы PHP.

$(document).ready(function() { 
    $("a.slide0").click(function() { 
     $('#revealModal').load('slideshow1.html', {slide:'0'}, function(){ 
      $(this).reveal(); 
      return false; 
     }); 
    }); 

    $("a.slide1").click(function() { 
     $('#revealModal').load('slideshow1.html', {slide:'1'}, function(){ 
      $(this).reveal(); 
      return false; 
     }); 
    }); 
}); 

slideshow1.html? Слайд = 1 и slideshow1.html? Слайд = 0 нужно будет обрабатывать переменную $_POST['slide'] в PHP для этого.

+0

К сожалению, на сервере, на котором он будет жить, не установлен PHP. Я надеялся разработать решение Javascript. У них действительно есть ColdFusion, поэтому я мог бы с этим справиться. Я просто избегаю этого, потому что ненавижу CF. – Imaginary

+0

Просто попробуйте и дайте мне знать, как это происходит. Этот url предоставляет что-то другое, когда вы просматриваете его через браузер? Если 'slide' равен 0 и 1? Они оба возвращают один и тот же контент или другой контент? Моя догадка в том, что вам не нужно беспокоиться о php ... –

+0

Вы также можете попробовать избавиться от котировок на номера ''0'' и'' 1'' –

0

Вы должны могут быть использованы с учетом второго параметра метода load() с является обратного вызова, который будет вызываться, когда процесс загрузки закончен (эквивалент готовности()).

Попробуйте это:

$("a.slide0").click(function() { 
    $('#revealLayer').load('slideshow1.html?slide=0', 
          {}, 
          function(response, status, whr) { 
     $('#revealLayer').appendTo('#revealModal'); 
     $('#revealModal').reveal(); 
    }); 

    // Cancel the click 
    return false; 
}); 

Определение метод:

.load(url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ]) 
+0

Это тот ответ, который я нашел, поэтому я не сомневаюсь в вас, но я не понимаю, как он решает мою проблему. Я мог бы просто толкнуть в своем понимании того, что делает обратный вызов. С этой структурой, как мне теперь получить доступ к значению «слайд» (который должен быть равен нулю) в загруженном контенте с помощью jQuery? – Imaginary

+0

@Imaginary - переменная 'slide' и любые другие переменные должны обрабатываться во втором параметре вызова метода .load()', чтобы иметь возможность захватить его через '$ _POST'. –

+0

Вы находитесь в функции, которая будет вызываться при загрузке содержимого, связанном с кликом вашей ссылки a.slide0, поэтому в этом обратном вызове вы знаете свой слайд (?). – MatRt