开发者

redirecting to other page with value in javascript via click

I want to create a Javascript file to do these operations:

  1. Pass the current link to the other page
  2. Click on hypertext or image that is created dynamically in JavaScript file to redirect

Just I want to have a Javascript link in the html body and not other thing same this :

<div>
<script type="text/开发者_如何学JAVAjavascript" src="JScript.js"></script>
</div>

And in the JavaScript file I have these:

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

This is not working. Please help me.


Several issues

  1. you never added the div to the page
  2. you used $ instead of # to access the div by ID
  3. you do not consistently use jQuery

Plain 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);
 } 

Using linked image:

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


A small change to the jQuery code from mplungjan:

Change:

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

To:

$(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);
  });
});

If you output e.currentTarget from the anonymous click handler function you get body since the event handler was attached to the body in mplungjan's solution. All I did was add .find('#MyDivTagID') directly after the .append() function so the click handler gets attached to the div and not the body.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜