jQuery变量中的空引号

时间:2016-02-15 05:32:18

标签: javascript jquery html angularjs

我尝试在黑色文字后添加链接。我可以让它们渲染得很好,但链接href标签就会消失。

var eventstuff = data.text;
var eventElement = $("<div class='well well-sm eventsWells'>");
var deleteButton = $("<div class='panel'><a style='float:right; color:#348CD9; margin-top:3px;' href='' ng-click='deleteEvent("+key+")'>DELETE</a></div>");
eventElement.html(eventstuff).append(deleteButton);
eventsList.append(eventElement);

html 只显示:

<a style="float:right; color:#348CD9; margin-top:3px;" href ng-click="deleteEvent(-KAY7j7_deUWLjhDbaQ5)">DELETE</a>

并点击该链接将我带到 /#(使用Angular)。

我已经尝试使用href='#'并在最后放置return false,这也没有用,它仍然会重定向到 /#

我还尝试转义引号,然后移除href,两者都不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这可能是因为deleteEvent(-KAY7j7_deUWLjhDbaQ5)

传递string类型参数时正确的onclick应该是这样的:

deleteEvent('-KAY7j7_deUWLjhDbaQ5')
            ^                    ^ // ==>quotes are requried

这可以通过使用以下内容来实现:

var deleteButton = $("<div class='panel'><a style='float:right; color:#348CD9; margin-top:3px;' href='' ng-click='deleteEvent(\'"+key+"\')'>DELETE</a></div>");

更新

您需要在此处添加$compile服务,这会将ng-click等角度指令绑定到您的控制器范围。见如下:

var eventstuff = data.text;
var eventElement = $("<div class='well well-sm eventsWells'>");
var deleteButton = $("<div class='panel'><a style='float:right; color:#348CD9; margin-top:3px;' href='' ng-click='deleteEvent(\'"+key+"\')'>DELETE</a></div>");
$compile(deleteButton)($scope);  //here
$compile(eventElement)($scope);  //here
eventElement.html(eventstuff).append(deleteButton);
eventsList.append(eventElement);

答案 1 :(得分:-1)

你可以这样试试 HREF =&#39;的javascript:无效(0);&#39;纳克单击=&#39; deleteEvent(\&#34;&#34 +键+ \&#34;&#34;)&#39;