单击时Jquery加载不正常

时间:2016-01-28 20:36:33

标签: javascript jquery html css ajax

这就是我将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;,但页面保持不变)*

2 个答案:

答案 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;
    });