Jquery 选择不显示的选项
我正在创建一个通过AJAX和hashchange jquery脚本动态更改和替换页面内容的应用程序。由于某些原因,在动态更改的AJAX内容中,没有显示select form选项。示例如下: 但是,如果我运行页面,而不通过AJAX加载/更改内容,请删除URL中的标记,select form元素将按原样工作 这简直要了我的命!!!请帮忙。以前从未遇到过这样的问题。甚至不知道从哪里开始。但这里有一个动态脚本,我认为这就是问题所在。但找不到与选择框的任何冲突。有什么好处Jquery 选择不显示的选项,jquery,html,ajax,Jquery,Html,Ajax,我正在创建一个通过AJAX和hashchange jquery脚本动态更改和替换页面内容的应用程序。由于某些原因,在动态更改的AJAX内容中,没有显示select form选项。示例如下: 但是,如果我运行页面,而不通过AJAX加载/更改内容,请删除URL中的标记,select form元素将按原样工作 这简直要了我的命!!!请帮忙。以前从未遇到过这样的问题。甚至不知道从哪里开始。但这里有一个动态脚本,我认为这就是问题所在。但找不到与选择框的任何冲突。有什么好处 $(function() {
$(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选择器是罪魁祸首。使用$.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');
});
编辑:完整的代码回答Ha,没有大喊大叫的伙伴,如果我是,那就是我自己。不是我请求帮助的人目前这只是一个猜测,但可能是服务器将您的页面解释为纯HTML而不是PHP吗?将.php扩展名放在url的哈希部分不会触发服务器将其解释为php。也许如果你正在使用的主页是一个HTML文件,你可以把它改成一个PHP文件。我确实想到了,但是我正在使用的主页也是PHP:嗯,你的代码不起作用。但我可能实施错了。另外,我没有使用jQuery1.7。你能举一个你提到的定期成功回访的例子吗?完整脚本?我还看到select通过ajax/load从服务器返回,带有一个自动关闭标记:。这无疑是个问题。编辑答案以明确询问html,看看这是否有帮助。感谢您的帮助。但它似乎没有修复它。。。不确定是什么导致了这个问题。这对我现在有效:当然有效!看起来是自动关闭标签错误把事情搞砸了。啊。排除故障时,我总是先检查源代码。我想是有一天吧。你这个摇滚人。谢谢