我想在中途停留中显示我网站的一部分。如果用户没有 javascript,则停留显示为普通网站。
我正在获取网站,getController
我的问题发生在handleLinksAndForm
.
$("#Popup > a").click(function(e){
e.preventDefault();
getController($(this).attr("href").substr(1),element);
});
这按预期工作。每当点击 Popover div 中的 Anchor 元素时,都会阻止默认操作,并在弹出框中加载新网站。
$("#Popup > form").each(function() {
alert(this.name);
});
$("#Popup > form").submit(function(e) {
alert("form");
e.preventDefault();
getPostController($(this).attr("action"),$(this).serialize(),element);
return false;
});
但是,这部分不起作用。无论是 foreach 部分还是 .submit()。
所以我的问题是:我的错误是什么?如果我使用$("form").each(function() {...
所有表单都可以识别,但是如果我添加额外的选择器 #Popup 则不会识别。
完整代码:
function getController(ctrl,element)
{
$.get('/service/controller/' + ctrl, function(data){
handleLinksAndForm(data,element)
})
}
function getPostController(ctrl,args,element)
{
$.post('/service/controller/' + ctrl,args, function(data) {
handleLinksAndForm(data,element)
});
}
function handleLinksAndForm(data,element)
{
element.html(data);
element.prepend("<div id=\"popupClose\">x</a>");
centerPopup();
$("#popupClose").click(function(){
disablePopup();
});
$("#Popup > a").click(function(e){
e.preventDefault();
getController($(this).attr("href").substr(1),element);
});
$("#Popup > form").each(function() {
alert(this.name);
});
$("#Popup > form").submit(function(e) {
alert("form");
e.preventDefault();
getPostController($(this).attr("action"),$(this).serialize(),element);
return false;
});
}