如何使用JavaScript / Jquery轻松实现屏幕/视图
How to realize screens / views with JavaScript / Jquery easily?
我确定我错过了一些非常基本的东西,但我才刚刚开始让自己跟上jQuery和Javascript编程的速度。以前我用PHP做服务器端编程。我现在正在为HTML5 webapp创建一个原型,我希望有不同的屏幕。现在有了PHP,这很容易,我可以使用像Smarty这样的服务器端模板并完成它。
但是,为了使我的应用程序更像Web应用程序,我想在屏幕之间动态切换而无需重新加载窗口。
我已经研究了几个可能与我的问题相关的选项,但我不确定我是否走在正确的轨道上。
我已经检查了例如JsRender,JsViews甚至纯jquery加载命令。但我不确定的是这些东西是否会让我拥有这样的东西:
HEADER_PART
MAIN_CONTENTFOOTER_PART(还包含指向我使用的常见JS文件的链接(
我想动态更新MAIN_CONTENT部分。 目前我的应用程序只有一个页面,属于该页面的所有自定义逻辑都在一个 JS 文件中。在这个JS文件中,我使用了一个简单的$(function(( { ...加载我的页面,因此每当加载页面时,我的页面的某些部分都会异步更新。这很好,因为加载该页面时,我在这个特定页面中的所有块都必须加载。
但是,如果我有一个链接,例如main.html#otherscreen,并且当我单击该屏幕时,我想更改我的MAIN_CONTENT并运行另一个页面加载特定的JS来处理另一个屏幕上的块,而不是第一页?
我知道我仍然可以使用服务器端模板并使用 AJAX 要求加载我的页面,但同样,不确定这是否是正确的方法。
你能开导我吗?:)
谢谢和最好的问候,本斯
查看 jQuery.load((。使用此功能,您可以将内容动态加载到页面上的div 中,这就是我认为您想要做的。只需在页面上找到要加载内容的div
并调用
$('#mydiv').load(url, data, function(response){
//do something once it's done.
});
根据您的评论...
这实际上很容易。 .load()
应该替换div 中的内容(我认为。如果没有,请先致电.empty()
(。当然,您可以花哨并添加效果,例如
function changePages(url) {
$('#mydiv').fadeOut('fast', function() {
$(this).load(url, function(response){
$('#mydiv').fadeIn('fast');
});
});
}
要处理URL中的哈希之类的事情,在点击事件中,您必须确保首先调用e.preventDefault()
:
$('#mylink').click(function(e){
e.preventDefault(); //e is a jquery event object
var link = $(this);
var hash = link.attr('href'); // get the hashtag if the href is '#something'
changePages(someUrl + hash);
});
为了在不更改页眉和页脚的情况下将数据动态加载到页面中,您应该使用 jQuery 的 AJAX 函数。它允许您将请求发布到服务器并接收回数据,而无需重新加载页面。一个简单的例子是这样的:
<html>
<head>
<title>Example</title>
<!-- Assuming jQuery is already referenced -->
<script type="text/javascript">
$('span.buttonish').click(function(){
$.ajax({
// The URL can be a file or a PHP script of your choosing
// it can also be pure HTML without the <html> tags as they
// are already in your file
url: 'path/to/the/file/that/return/data',
success: function(receivedData) {
// The received data is the content of the file or the return
// data of the script and you can use it as you would with any data
$('#content').html(receivedData);
}
});
});
</script>
</head>
<body>
<div id="header">
<!-- Something -->
</div>
<div id="content">
<span class="buttonish">Click me to change the text... </span>
</div>
</div id="footer">
<!-- Something -->
</div>
</body>
<html>
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 如何实现此布局
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 如何在p5.js中管理多智力竞赛游戏的多个屏幕
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 实现一个建立在google.com之上的自定义搜索引擎
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 有没有更有效的方法在基于屏幕尺寸的 AngularJS 中实现 limitTo
- 如何使用JavaScript / Jquery轻松实现屏幕/视图
- d3:拖动以实现静态屏幕外可视化