我有一个街区:
<div class="going" filmid="2">
<a href="">I am going!</a>
<div>Going too: 20</div>
</div>
和5个街区:
<div class="going">
<a href="">I am going!</a>
<div>Going too: 20</div>
</div>
一个区块的差异具有filmid
属性
我的js功能:
function setUpUpdateGoingCount() {
$("div.going a").click(function (e) {
e.preventDefault();
var filmId = $(this).parent("div").attr("filmid");
$.post("/Cinema/UpdateGoingCount", { id: filmId }, function () {
alert("test");
});
});
}
点击事件可以很好地处理没有filmid
atrribute的块
你能解释一下为什么以及怎么做第一块效果很好吗?
答案 0 :(得分:4)
由于filmid
不是HTML中存在的属性,因此您应该使用数据属性:
<div class="going" data-filmid="2">
您可以通过以下方式访问:
var filmId = $(this).parent("div").data("filmid");
答案 1 :(得分:2)
AJAX帖子以任一方式发送。设置filmid
的div内的锚点(链接)与设置为filmid内容的参数id
一起发送。不包含filmid
的div与param一起发送。
<强> UDATE 强> 如果你的意思是不工作,javascript没有显示警告消息,那可能是因为你在该调用上收到错误,并且你需要以这种方式指定错误函数:
function setUpUpdateGoingCount() {
$("div.going a").click(function(e) {
e.preventDefault();
var filmId = $(this).parent("div").attr("filmid");
$.post("/Cinema/UpdateGoingCount", {
id: filmId
}, function() {
alert("test");
}).error(function() {
alert("error");
});
});
}
的一个有效示例
答案 2 :(得分:0)
你需要在块中添加第二个类,而不在你的选择器中使用filmid,因为.click将被绑定到所有div。来自是否具有filmid属性。