通过这里所有人的帮助,我终于在画廊网站上取得了一些进展,谢谢。现在我还有最后一个问题,希望非常简单。首先,场景如下:
由于我是Javascript的新手,我正在尝试学习JavaScriptBRFORE,我深入研究了jquery,所以我试图用(我相信这个词是)普通的Javascript做所有事情。在不涉及所有代码的情况下,我为我的艺术作品制作了一个图库,在页面顶部有一个拇指滑块和一个显示所选艺术作品(包括其他视图、描述、标题等)的字段。我现在没有处理多阵列,而是构建了一个名为"gallery/php"的页面,其中包含了将被调用到字段中的所有预构建的div(标题为"generic")。使用innerHTML,我进行了一个简单的调用,这样当选择了所需的缩略图时,它会按id调用相应的div,并将其写入"generic"div。
很简单。。。
问题是,我有大约40个这样的页面,如果我做了一个php include,并将include隐藏在一个隐藏的div中,而艺术作品没有显示,那么加载页面将永远花费时间,这似乎是一个非常糟糕的主意。我想做的是修改我现在使用的函数,这样它就不会在当前页面上调用id,而是知道要引用哪个外部页面,以及用哪个div(基于id)来拉取和填充"generic"div。脚本当前如下所示:
function changeDiv(art) {
viewer = document.getElementById('generic'),
targetInfo = document.getElementById(art);
viewer.innerHTML = targetInfo.innerHTML;
}
我想做的是(忽略语法):
function changeDiv(art) {
viewer = document.getElementById('generic'),
targetInfo = ***src = gallery.php, #(art);***
viewer.innerHTML = targetInfo.innerHTML;
}
我唯一看到的与我想做的类似的是jquery中的.load(),但我不知道如何将其转换回javascript。
好!这是我的尝试。请注意,虽然这可能应该通过AJAX库(如jQuery)进行审查,但这不是OP所要求的。
**此外,我不知道gallery.php的设置,所以我尽了最大努力。
**我也知道这很可怕,没有任何验证或其他好处,但这更多的是一个概念的证明。(那些务实程序员的跟踪代码)
假设您有一个gallery.php设置如下:
<?php
$pull = $_GET["pull"];
$gallery[0] = "<div>Your art work img tags here</div>";
$gallery[1] = "<div>Some more art work</div>";
//Pull from the changeDiv parameter in the JavaScript below.
echo $gallery[$pull];
?>
我们将使用一些JavaScript,如下所示:
var changeDiv = function(pull) {
//Pull parameter indicates an array
//index within the gallery.php $gallery array
var ajaxObj;
//Our AJAX objet shall be declared
if(window.XMLHttpRequest) {
ajaxObj = new XMLHttpRequest();
}
else {
ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");
}
//When the ajaxObj changes it's ready
//state, do this stuff below
ajaxObj.onreadystatechange = function() {
//But only if the ready state is
//really ready and the status is good to go
if(ajaxObj.readyState==4 && ajaxObj.status==200) {
var response = this.responseText;
document.getElementById("viewer").innerHTML=response;
}
}
//Open the async connection to
//gallery.php and send your GET
//global (pull)
ajaxObj.open("GET","gallery.php?pull="+pull,true);
//Send it and pray
ajaxObj.send();
}
http://www.smashingmagazine.com/2008/10/16/50-excellent-ajax-tutorials/-AJAX 的一些教程列表