如何使用jQuery写入页面的数据可用于其他操作?

时间:2014-08-02 16:58:34

标签: jquery

在某个事件中,我使用html()将数据写入页面。我想立即将这些数据用于其他事情。例如(保持尽可能简单):

$('.linkclass').click(function() {

  $('#divid').html('<a id="mylink" href="#somelink">Click me</a>');

});

在页面上:

<a class="linkclass">Random link</a>
<div id="divid"> </div>

这很好用。但是,尝试使用写入#divid的数据不会:

$('.linkclass').click(function() {

  $('#divid').html('<a id="mylink" href="#somelink">Click me</a>');
  $('#mylink').trigger("click"); // doesn't work if not originally on page

});

那么,我如何处理写入#divid的数据?

5 个答案:

答案 0 :(得分:0)

您的问题的解决方法可能是

$('.linkclass').click(function() {

  $('#divid').html('<a id="mylink" href="#helo">Click me</a>');
  var url = $('#mylink').attr('href');
  window.location = url; 

});

您可以通过将href设置为http://www.google.com来测试它,例如

答案 1 :(得分:0)

它不起作用,因为你没有id为#34; somelink&#34;的元素。

重写:

$('#divid').html('<a href="#somelink">Click me</a>');

进入这个

$('#divid').html('<a href="#somelink" id="somelink">Click me</a>');

答案 2 :(得分:0)

不确定是否可以触发HTML <a>标记上的点击以触发元素的默认行为(转到另一页)。如果我们可以做那样的话,“Click jacking”将不存在。

但您确定可以在此元素上设置click事件侦听器,然后执行您想要的操作:

$(document).on("click", '#somelink', function() {
  window.location.replace('https://www.google.com');
});

$('.linkclass').click(function() {
  $('#divid').html('<a id="somelink">Click me</a>');
  $('#somelink').trigger("click");
});

答案 3 :(得分:0)

如果您以编程方式执行此操作,try this(jsFiddle):

$('.linkclass').click(function() {

var $newlink1 = $("<a id='new-link-1'/>")
.attr('href','#3')
.html("clicky")
.click(alert('clicked!')); //debug

$("#divid").append($newlink1);

});

不知何故,我认为<a>并未及时添加到dom中以供jQuery引用它。

答案 4 :(得分:0)

尝试

$('.linkclass').click(function () {
    $('#divid').html('<a id="mylink" href="#somelink">Click me</a>');
    $('#mylink')[0].click();
});

jsfiddle http://jsfiddle.net/guest271314/4cVSV/