我试图将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>
它给了我错误
提前完成
答案 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]
周围的单引号。另请注意,颜色现在匹配。