将 javascript onclick 事件附加到锚标记
Appending the javascript onclick event to anchor tag
我正在尝试将 onclick 事件附加到我的 Phonegap 应用程序。它将 link 到外部浏览器的位置。
我的代码:
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>
它给我错误
提前致谢
我已经稍微简化了您的代码。考虑以下因素:
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
属性以双引号 (") 开头,这意味着它将查找之后的第一个双引号来关闭它。就在 window.open(
之后,这意味着该部分是唯一的将被设置为 onclick 属性的东西。看看 Whosebug 代码框中的 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]
周围的单引号。还要注意颜色现在匹配了。
我正在尝试将 onclick 事件附加到我的 Phonegap 应用程序。它将 link 到外部浏览器的位置。
我的代码:
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>
它给我错误
提前致谢
我已经稍微简化了您的代码。考虑以下因素:
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
属性以双引号 (") 开头,这意味着它将查找之后的第一个双引号来关闭它。就在 window.open(
之后,这意味着该部分是唯一的将被设置为 onclick 属性的东西。看看 Whosebug 代码框中的 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]
周围的单引号。还要注意颜色现在匹配了。