所以我有一个简单的JQuery代码:
var p = ctx.Person.First();
p.Name = "name updated";
ctx.SaveChanges();
当我点击ID为$(function () {
var podatoci;
var i;
$(".front").on("load", init());
$("#remove").on("click", toggleRemove());
function init() {
load();
}
function load() {
$.get("data.json", function (data, status) {
podatoci = data;
fill();
})
}
function toggleRemove() {
console.log("Yes");
$(".likse-dislikes").toggle();
}
function fill() {
for (i = 0; i < podatoci.length; i++) {
$("#container").append("<div class='wrap'><img class='img' src='"+podatoci[i].url+"'/><div class='likes-dislikes'><img class='like' src='sources/like.png'/><img class='dislike' src='sources/dislike.png'/></div></div>");
}
}
});
的按钮时,它会运行remove
功能。
然而,当我运行网页时,当我点击按钮时我到达控制台时,该功能没有运行,而是只有在加载页面时它才会toggleRemove()
。任何人都可以解释问题在哪里,我该如何解决?
提前谢谢!
答案 0 :(得分:2)
这不符合你的想法:
$("#remove").on("click", toggleRemove());
在页面加载时执行toggleRemove
一次,并将处理程序设置为该函数的结果。 (这是undefined
,因为该函数不返回任何内容。)
您希望将处理程序设置为函数本身,而不是函数的结果:
$("#remove").on("click", toggleRemove);
此外,如果在执行此代码后将您的元素添加到页面(我们不知道,虽然显示的代码意味着添加了一些动态元素),那么您需要委派事件:
$(document).on("click", "#remove", toggleRemove);
答案 1 :(得分:0)
您在删除功能上拼错了类名。
$( “的 likse 强> -dislikes。”)切换();
将其更改为
$(".likes-dislikes").toggle();
答案 2 :(得分:0)
正如我在$(".front").on("load", init());
$("#remove").on("click", toggleRemove());
看到的那样,当您注册事件监听器时,您可以及时呼叫您的回叫。试试这个:$(".front").on("load", init);
$("#remove").on("click", toggleRemove);
答案 3 :(得分:-3)
您可以使用$scope.apply(handler)
$scope.apply(function () {
// Angular is now aware that something might of changed
$scope.changeThisForMe = true;
});