Javascript 多个处理程序:jQuery$(document).on
是否只允许将一个事件绑定到一个对象?我的意思是,我有两个js文件,我想在相同的页面加载上初始化。 因此,我尝试了以下方法: js1/Mapmode.js:Javascript 多个处理程序:jQuery$(document).on,javascript,jquery,jquery-mobile,jquery-events,Javascript,Jquery,Jquery Mobile,Jquery Events,是否只允许将一个事件绑定到一个对象?我的意思是,我有两个js文件,我想在相同的页面加载上初始化。 因此,我尝试了以下方法: js1/Mapmode.js: $(document).ready(function () { initMapModeContent() }); function initMapModeContent(){ alert('test'); initPageHeader(); var oldHTML = document.getElementById(
$(document).ready(function () { initMapModeContent() });
function initMapModeContent(){
alert('test');
initPageHeader();
var oldHTML = document.getElementById('mapmodeContent').innerHTML;
var newHTML = oldHTML + '<div><a href="pages/Beskeder.jsp#beskeder" id="mapLink" name="mapLink"><img id="mapLinkImage" alt="a map which links to the beskeder" src="images/beskeder.png"/></a></div>';
document.getElementById("mapmodeContent").innerHTML=newHTML;
}
$(document).ready(函数(){initMapModeContent()});
函数initMapModeContent(){
警报(“测试”);
initPageHeader();
var oldHTML=document.getElementById('mapmodeContent').innerHTML;
var newHTML=oldHTML+“”;
document.getElementById(“mapmodeContent”).innerHTML=newHTML;
}
js2/PageHeader.js:
$(document).on("pageinit", "#mapmode", function(event) {
initPageHeader();
});
$(document).on("pageinit", "#beskeder", function(event) {
initPageHeader();
});
function initPageHeader() {
var id = document.getElementById('header').parentNode.id;
//TODO getdata with the id(page we are currently on).
$("#header").html(function(index, originalMarkup) {
return '<a data-theme="a" data-wrapperels="span" data-iconshadow="true" data-shadow="true" ' + 'data-corners="true" class="ui-btn-left ui-btn ui-btn-up-a ui-shadow ui-btn-corner-all" href="#" ' + 'data-rel="back" data-role="button"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">' + '<img src="../images/back.png" alt="back" align="middle" vspace="2"></span></span></a>' + '<h1 aria-level="1" role="heading" class="ui-title">' + '<img src="../images/main_header.png" alt="logo" align="middle" vspace="2">' + '</h1><a data-theme="a" data-wrapperels="span" data-iconshadow="true" data-shadow="true"' + 'data-corners="true" class="ui-btn-right ui-btn ui-btn-up-a ui-btn-inline ui-shadow ui-btn-corner-all" ' + 'href="#first" data-role="button" data-inline="true"><span class="ui-btn-inner ui-btn-corner-all">' + '<span class="ui-btn-text">' + '<img src="../images/home.png" alt="picture to take you to the first page" align="middle">' + '</span></span></a>';
});
}
$(document).on(“pageinit”,“映射模式”,函数(事件){
initPageHeader();
});
$(文档).on(“pageinit”,“#beskeder”,函数(事件){
initPageHeader();
});
函数initPageHeader(){
var id=document.getElementById('header').parentNode.id;
//TODO获取id为的数据(我们当前所在的页面)。
$(“#header”).html(函数(索引、原始标记){
返回“”+“”+“”+“”;
});
}
html5:
<%--
Document : mapMode
Created on : Jul 12, 2012, 10:36:22 AM
Author : ame
--%>
<!DOCTYPE html>
<html>
<head>
<title>Map</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="js/jquery.mobile-1.1.0.css" />
</head>
<body>
<!-- Start of first page -->
<div data-role="page" id="mapmode" name="mapmode">
<div data-role="header" id="header" name="header">
<p>TEEEST</p>
</div><!-- /header -->
<div data-role="content" id="mapmodePageContent" name="mapmodePageContent">
<p>I'm the first page in mapMode!.</p>
</div><!-- /content -->
</div><!-- /page -->
<script type="text/javascript" src="../js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../js/jquery.mobile-1.1.0.js"></script>
<script type="text/javascript" src="../js/Mapmode.js"></script>
<script type="text/javascript" src="../js/PageHeader.js"></script>
</body>
</html>
地图
微小的
我是mapMode!中的第一页
我只是在文档中找不到它不应该工作?如果这是不合法的,或者任何人都可以发现我的错误,那么有什么建议可以提出吗
它在PageHeader.js中工作,但在Mapmode.js中不工作,这就是我问这个问题的原因。.on()
将事件附加到选择器
您可以为其分配任意数量的事件,如单击、提交等
但我认为将同一事件多次指定给同一元素是不明智的。我认为只有最后附加的事件才会触发。但如果我更改首先加载的js,它不会改变。它应该可以完全正常工作(假设触发了
pageinit
事件)。它在一个文件(js2/PageHeader.js)中工作,但在另一个文件(js1/Mapmode.js)中不工作。您尝试过使用$(document)。准备好了吗(…)
?如果在已触发pageinit
之后绑定pageinit
处理程序,则它将不起任何作用。绑定文档。文档准备好后,ready将立即启动它。ready与on的语法相同:)$(document).ready(initMapModeContent());-不起作用?