通过点击重定向到javascript值的其他页面

时间:2011-09-16 18:45:29

标签: javascript jquery

我想创建一个Javascript文件来执行这些操作:

  1. 将当前链接传递到其他页面
  2. 单击在JavaScript文件中动态创建的超文本或图像以重定向
  3. 我希望在html主体中有一个Javascript链接,而不是其他相同的东西:

    <div>
    <script type="text/javascript" src="JScript.js"></script>
    </div>
    

    在JavaScript文件中我有这些:

    var DivTag = document.createElement("Div");
    DivTag.setAttribute('ID', 'MyDivTagID');
        $(document).ready(function () {
            $("$MyDivTagID").click(function(e) {
                window.location = "http://www.MyLink.com/?Url=" + window.location;
        });
    });
    

    这不起作用。请帮帮我。

2 个答案:

答案 0 :(得分:3)

几个问题

  1. 您从未将div添加到页面
  2. 您使用$代替#来按ID访问div
  3. 你没有一直使用jQuery
  4. 普通JS:DEMO HERE

     window.onload=function () {
       var DivTag = document.createElement("div");
       DivTag.setAttribute('id', 'MyDivTagID');
       DivTag.innerHTML="Click";
       DivTag.onclick = function(e) {
         window.location = "http://www.MyLink.com/?Url=" + escape(window.location.href);
       }
       document.body.appendChild(DivTag);
     } 
    

    使用链接图片:

     window.onload=function () {
       var DivTag = document.createElement("div");
       DivTag.setAttribute('id', 'MyDivTagID');
       var anchor = document.createElement("a");
       anchor.href="#";
       anchor.onclick = function(e) {
         window.location = "http://www.MyLink.com/?Url=" + escape(window.location.href);
       }
       var img = document.createElement("img");
       img.src="image.gif";
       img.style.border="0";
       anchor.appendChild(img);
       DivTag.appendChild(anchor);
       document.body.appendChild(DivTag);
     } 
    

    jQuery:DEMO HERE

    $(document).ready(function () {
      $('body').append('<div id="MyDivTagID">Click</div>');
      $("#MyDivTagID").click(function(e) {
        window.location = "http://www.MyLink.com/?Url=" + escape(window.location.href);
      });
    });
    

答案 1 :(得分:0)

mplungjan对jQuery代码的一个小改动:

变化:

$(document).ready(function () {
  $('body').append('<div id="MyDivTagID">Click</div>').click(function(e) {
    window.location = "http://www.MyLink.com/?Url=" + escape(window.location.href);
  });
});

要:

$(document).ready(function () {
  $('body').append('<div id="MyDivTagID">Click</div>').find('#MyDivTagID').click(function(e) {
    window.location = "http://www.MyLink.com/?Url=" + escape(window.location.href);
  });
});

如果从匿名点击处理函数输出e.currentTarget,则得到body,因为事件处理程序已附加到mplungjan解决方案中的body。我所做的只是在.find('#MyDivTagID')函数后直接添加.append(),因此点击处理程序会附加到div而不是body