gpt4 book ai didi

javascript - jQuery追加未将ajax按钮设置为元素追加

转载 作者:行者123 更新时间:2023-11-28 07:23:04 25 4
gpt4 key购买 nike

我有这个脚本来附加新元素:

function(newElements, data, url){

var $newElems = $( newElements );
$('#posts').masonry( 'appended', $newElems, true);

}

这个按钮是新元素 html 的一部分,附加了以下 Angularjs 代码:

<li>
<a href="" ng-init="unfaved=false" ng-show='unfaved' class="font-icon share-fav-active" ng-click="unfavPost({{Auth::user()->id}},{{$post->id}})"><span class="glyphicon glyphicon-star"></span></a>
<a href="" ng-init="unfaved=false" ng-hide='unfaved' class="font-icon share-fav" ng-click="favPost({{Auth::user()->id}},{{$post->id}})"><span class="glyphicon glyphicon-star"></span></a>
</li>

但是 Angularjs 不起作用,只能在附加的元素 1 中工作,如何才能在每个新元素附加中使其工作?

最佳答案

我想您需要使用事件附加新元素。我已经使用 Angular 指令编写了一个示例。您必须 $compile 该元素。

var testApp = angular.module("testApp", []);

testApp.controller('someController', ['$scope',
function($scope) {
$scope.sayHi = function() {
alert("Hi!");
};
}
]);

testApp.directive('addButton', function($compile) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$(element).click(function(e) {
var newBtn = $('<button type="button" ng-click="sayHi()">btn</button>');
$compile(newBtn)(scope);
$('#buttonsList').append($('<li></li>').append(newBtn));
});
}
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<html ng-app="testApp">

<body ng-controller="someController">
<ul id="buttonsList">
<li>
<button type="button" ng-click="sayHi()">first button</button>
</li>
</ul>
<hr>
<button type="button" add-button>Add new button</button>
</body>

</html>

请注意:我还不是 Angular 专家(还:P),所以我希望该示例使用最佳实践,否则人们会纠正我。

关于javascript - jQuery追加未将ajax按钮设置为元素追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30062282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com