srh*_*snl 0 html javascript jquery
我在使用jquery的.on()函数时可以在更改div内容时执行某些操作.
这是我的代码:
$( "div.contentdata" ).on( "onChange", function() {
document.write(".on jquery function is working.");
statement
.
.
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
这是完整的代码
<html>
<script type="text/javascript" src="static/path/to/widget-scroller.js"></script> <script type="text/javascript" src="static/path/to/jquery-latest.js"></script>
<script type="text/javascript" src="static/path/to/jquery.tablesorter.js"></script>
<script type="text/javascript" src="static/path/to/jquery.tablesorter.widgets.js"></script>
<script>
function loadTable(logtype) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("contents").innerHTML=xmlhttp.responseText;
}
}
if (logtype == "Option1") {
xmlhttp.open("GET","/Option1",true);
}
else if (logtype == "Option2"){
xmlhttp.open("GET","/Option2",true);
}
xmlhttp.send();
}
</script>
<body>
<div id="alldiv">
<!--Banner Div--> <div id="bannertable">
BANNER
</div>
<div id = "container" > <table id="holder"> <tr id="tr1">
<td id ="td1">
<div id = "nav">
<a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')"> Expand All</a> | <a href="javascript:ddtreemenu.flatten('treemenu1', 'contact')">Show All</a>
<ul id="treemenu1" class="treeview">
<li>System
<ul>
<li>Monitoring</li>
</ul>
> <li><a href="#" onClick="loadTable('Option1')">Option1</a></li>
<li><a href="#" onClick="loadTable('Option2')">Option2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<script type="text/javascript">
ddtreemenu.createTree("treemenu1", true)
</script>
</div>
</td>
<td id = "td2">
<div id = "contents" class="contentdata">
tables
</div>
</td> </tr> </table> </div> </div>
</body> </html>
Run Code Online (Sandbox Code Playgroud)
注册的标准事件处理程序.on不需要"on"前缀,如果包含它则不起作用.
change无论如何,当Div的内容发生变化时,Div甚至不会发动事件.
您可以注册"DOMMutation"事件,这些事件在元素更改时触发,但它们不受广泛支持,并且在下一版本的DOM规范中被替换为备用API.
除非您正在编写浏览器扩展,否则如果元素的内容发生变化,那么您的代码就是这样做的.弄清楚在哪里(可能在你的Ajax回调中)并在那里做你的尝试.
您正在使用jQuery - $.get()而不是使用XMLHttpRequest对象滚动您自己的Ajax代码.
您仍在使用jQuery - 在JS代码中注册所有事件处理程序,而不是使用"javascript:"链接"内联" .