选择选项没有显示
问题描述:
我正在创建一个应用程序,其中页面内容被更改并通过AJAX(和hashchange jQuery脚本)动态替换。出于某种原因,在动态更改的AJAX内容中,选择表单选项没有显示出来。例如这里:选择选项没有显示
http://socialbungy.com/newsite/sweeps_temp_facebook/TAB_TEMP1/#enter.php
但是,如果我运行页面,没有装载/改变通过AJAX的内容(除去在URL中的#标记),选择表单元素的作品,因为它是应该的。
http://socialbungy.com/newsite/sweeps_temp_facebook/TAB_TEMP1/enter.php
这是我的命!请帮忙。从来没有遇到过这样的问题。甚至不知道从哪里开始。但这里是我认为的动态脚本是问题。虽然找不到与选择框的任何冲突。是什么赋予了?
$(function() {
var newHash = "",
$mainContent = $("#appContent"),
$pageWrap = $("#page-wrap"),
baseHeight = 0,
$el;
$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();
$("nav").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$("#buttonWrap").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash) {
$mainContent
.find("#guts")
.slideToggle(500, function() {
$mainContent.hide().load(newHash + " #guts", function() {
$mainContent.slideToggle(500, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
$("nav a").removeClass("current");
$("nav a[href="+newHash+"]").addClass("current");
//RE-FIRE OTHER SCRIPTS ON AJAX CONTENT LOAD
//Phone Field Format
$(function() {
$("#phone").mask("(999) 999-9999",{placeholder:" "});
});
});
});
};
});
$(window).trigger('hashchange');
});
答
您的服务器响应看起来完全正确,但是在插入DOM之后,您的select元素都会变形。我的猜测是load()+ parse-selector是罪魁祸首。与$.ajax
试试吧,这样的事情:
$(function() {
var newHash = "",
$mainContent = $("#appContent"),
$pageWrap = $("#page-wrap"),
baseHeight = 0,
$el;
$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();
$("nav").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$("#buttonWrap").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash) {
$mainContent
.find("#guts")
.slideToggle(500, function() {
$mainContent.hide();
$.ajax({
url: newHash,
dataType: 'html',
success: function(data) {
$mainContent.html($(data).find('#appContent').html());
$mainContent.slideToggle(500, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
$("nav a").removeClass("current");
$("nav a[href="+newHash+"]").addClass("current");
//RE-FIRE OTHER SCRIPTS ON AJAX CONTENT LOAD
//Phone Field Format
$(function() {
$("#phone").mask("(999) 999-9999",{placeholder:" "});
});
}
});
});
}
});
$(window).trigger('hashchange');
});
编辑:全码答案
哈,没有大呼小叫哥们,如果我是它会是我自己。不是我要求帮助的人。 :) – 2012-01-05 21:09:31
这只是一个疯狂的猜测,但是可能是因为你的页面被服务器解释为纯HTML,而不是PHP?在URL的哈希部分有.php扩展名不会触发它被服务器解释为php。也许如果你使用的主页是HTML文件,你可以改为PHP文件。 – 2012-01-05 21:12:31
这并越过我的脑海里,但我使用这个网页,这是php以及: http://socialbungy.com/newsite/sweeps_temp_facebook/TAB_TEMP1/#index.php – 2012-01-05 21:17:16