这就是我将HTML加载到...
<div id="AJAX_Parent" class="visibleBorderThick">
<div id="AJAX_Child">
...
</div>
</div>
这是使用jquery的加载函数加载HTML的链接。
<a id="MyID_1755055367" class="dynamicLink" href="/rules"> Click Me </a>
这是确保javascript和jquery正在运行的javascript ...
<script type="text/javascript">
alert("Javascript is running");
if (window.jQuery) {
alert("jQuery is loaded")
} else {
alert("jQuery is not loaded")
}
if ( $( "#MyID_1755055367" ).length ) {
alert("Found element"); /* Element is found */
alert( $( "#MyID_1755055367" ).length ); /* length is 1*/
} else {
alert("Cannot Find Element")
}
</script>
这是实际加载的javascript ...
$("#MyID_1755055367").onclick = (function() {
alert("onclick activated");
history.pushState({ linkSource: window.location.href }, "page title", "/rules");
$("#AJAX_Parent").load("/rules #AJAX_Child");
return false;
});
^这不起作用。我没有看到&#34; onclick已激活&#34;
另外,我试过这样做......
document.getElementById("MyID_1704232995").onclick = (function() {
alert("onclick activated");
history.pushState({ linkSource: window.location.href }, "page title", "/rules");
$("#AJAX_Parent").load("/rules #AJAX_Child");
return false;
});
这样做会给我
"onclick activated"
,我看到网址已更改,当我查看Google Chrome中的网页来源时,我发现有关<div id="AJAX_Child">
的HTML已被修改。这一切都很好,但页面没有正确呈现(它呈现平坦 - 就好像
AJAX_Child
是一个空div)。注意:固定这个&#34; FLATTENING&#34;通过移动ID进入&#34;&#34;。美元标志加载仍然没有工作。
*修正了jquery *
$(@{ Html("\"" + "#" + uniqueID.body.substring(1)) }).click(function() {
alert("onclick activated");
history.pushState({ linkSource: window.location.href }, "page title", @quotedURL);
$("#AJAX_Parent").load(@{ Html(quotedURL.body.dropRight(1) + " #AJAX_Child\"") });
return false;
});
*现在向前点击工作,但后退按钮不起作用(后退按钮导致HTML更改内部&#34;页面来源&#34;,但页面保持不变)*
答案 0 :(得分:2)
jQuery选择器不提供onclick
处理程序。请改用.click()
。 https://api.jquery.com/click/
其次,.load
接受两个参数:URL和回调。 https://api.jquery.com/load/
第三,请注意您的分号使用或缺少分号。它让我可爱的小猫哭了起来。你不希望这种情况发生。如初。
答案 1 :(得分:0)
您的onclick定义格式不正确。它应该如下:
$("#MyID_1755055367").on("click", function() {
alert("onclick activated");
history.pushState({ linkSource: window.location.href }, "page title", "/rules");
$("#AJAX_Parent").load("/rules #AJAX_Child");
return false;
});