从xml和jquery呈现后链接不起作用

时间:2015-11-30 03:59:53

标签: javascript jquery html css xml

我有一个在index.html上加载的基本新闻自动收报机 它从xml文件中提取div信息并自动更改自动收报机屏幕上的数据。它在悬停时暂停并具有前进和后退按钮

如果Feed只是纯文本,那么一切都很有效,但我似乎无法让代码接受可点击的链接。可点击链接应更改背景并打开一个包含更多信息的弹出窗口 这适用于页面上的手动链接

我能够通过cdml在xml文件上显示链接,或者将“a href”显示在jquery中,该jquery将xml数据添加到具有适当div的页面

如果我手动添加带有html页面链接的div,链接工作正常

在js代码之后将以下内容添加到html:

<div class="newsTicker active"><a href="#" id="open">Latest News updates/ticker 1</a></div>
<div class="newsTicker">Latest News updates/ticker 2</div>
<div class="newsTicker">Latest News updates/ticker 3</div>
<div class="newsTicker">Latest News updates/ticker 4</div>

当我检查页面时,信息正确地输入页面但链接不起作用 有人可以帮忙!!

此处找到的主要代码---&gt; http://jsfiddle.net/17h0wa28/5/

xml页面非常基础,因此非技术人员可以根据需要动态更新。

<?xml version="1.0" encoding="UTF-8"?>
<NEWSFEED>
    <STATUS>
        <UPDATE><![CDATA[<a href="#" id="open">Latest News updates/ticker 1</a>]]></UPDATE>
    </STATUS>
    <STATUS>
        <UPDATE>Latest News updates/ticker 2</UPDATE>
    </STATUS>
    <STATUS>
        <UPDATE>Latest News updates/ticker 3</UPDATE>
    </STATUS>
    <STATUS>
        <UPDATE>Latest News updates/ticker 4</UPDATE>
    </STATUS>
</NEWSFEED>

1 个答案:

答案 0 :(得分:0)

好的问题..由于您的锚标记是动态生成的,即在DOM完全加载后附加到events,您需要 event delegation ,以附加{ {1}} dynamically添加了elements,如下所示:

点击#open元素的代码应修改为:

$(document).on('click','#open',function(e) { //event delegation
   e.preventDefault(); //prevent default action if necessary
   $('#pop_background').fadeIn();
   $('#pop_box').fadeIn();
   return false;
});

event附加到document,然后确定该点击是否来自#open元素。此外,如果您要加载#open的任何其他静态元素,请将dynamic elements附加到elements中现有的DOM,然后您可以id static element