我的onclick功能有问题。

这是我的代码:

$('ul.listing').append('<button onclick="openInApp("test")"  class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');


单击按钮时,出现“ Unexpected end of input”错误消息。
我也尝试像这样传递变量:

$('ul.listing').append('<button onclick="openInApp('+ edit_url +')"  class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');


我收到以下消息:Uncaught SyntaxError: missing ) after argument list

两种错误均始于“(”

我还有另一个功能(总是在附录中):

 $('ul.listing').append('<a href="event-details.html" onclick="saveEventID(' + data[i].ID + ');">')


它完美地工作

我不明白

最佳答案

要将字符串嵌套在onclick中,您可以像下面这样进行操作,其中使用反斜杠将单引号转义以防止其终止字符串。

$('ul.listing').append('<button onclick="openInApp(\'test\')"  class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');


解决此问题的另一种方法可以通过将字符串传递给单独的data属性来完成:

$('ul.listing').append('<button onclick="openInApp(this)" data-string="yourstringhere" class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');


然后像这样在onclick函数中访问它:

function openInApp(element) {
    var mystring = $(element).data("string");
}

关于javascript - 带有onclick的“ Uncaught SyntaxError :输入意外结束”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50336211/

10-11 23:32
查看更多