将javascript onclick事件附加到锚标记

时间:2017-07-12 06:26:31

标签: javascript android jquery phonegap

我试图将onclick事件附加到我的Phonegap应用程序。它将链接到外部浏览器的位置。

我的代码:

pair +='<div class="card_background" style="background-image: url("http://placehold.it/600x200");" valign="bottom" class="card-header color-white no-border"><div class="card_overlay"></div><div class="animated_background"></div><h3 class="card-title">'+ results.rows.item(i).title +'</h3></div><div class="card-content"><div class="card-content-inner"><p class="color-gray event_details">Event Location:  <strong>'+ results.rows.item(i).eventlocation +'</strong></p><p class="color-gray event_details">Event Date: <strong>'+ date + " " + month + " " + year +'</strong></p><a href="#" onclick="window.open("'+ results.rows.item(i).eventOrganiserLink +'", _system, location=yes);">Google</a><br/></div></div>';

内循环, 后来我把它附加到div

我想添加:

<a href="#" onclick="window.open("'+ results.rows.item(i).eventOrganiserLink +'", _system, location=yes);">Google</a>

它给了我错误

提前完成

1 个答案:

答案 0 :(得分:1)

我在某种程度上简化了您的代码。请考虑以下事项:

var pair = '';
var eventOrganiserLink = '[EVENT ORGANISER LINK]';

pair += '<a href="#" onclick="window.open("'+ eventOrganiserLink +'", _system, location=yes);">Google</a>';

这会产生以下结果:

<a href="#" onclick="window.open("[EVENT ORGANISER LINK]", _system, location=yes);">Google</a>

onclick属性打开时带有双引号(&#34;),这意味着它将在此之后查找第一个双引号以关闭它。在window.open(之后,这意味着该部分是唯一将被设置为onclick属性的东西。看看StackOverflow代码框中onclick属性中的颜色如何真正匹配?

这有点棘手,因为我们正在混合引号(设置对变量)和双引号(作为该变量中的文本,稍后将用作html - 因此它需要有效)。

您可以对第一个window.open参数使用单引号,并将其转义为pair变量的赋值,如下所示:

var pair = '';
var eventOrganiserLink = '[EVENT ORGANISER LINK]';

pair += '<a href="#" onclick="window.open(\''+ eventOrganiserLink +'\', _system, location=yes);">Google</a>';

这会产生:

<a href="#" onclick="window.open('[EVENT ORGANISER LINK]', _system, location=yes);">Google</a>

请注意[EVENT ORGANISER LINK]周围的单引号。另请注意,颜色现在匹配。