Javascript 单击元素的Grab属性-使用单击事件处理程序
在我的html中,屏幕上有大约25个缩略图,每个缩略图都有一个类似的按钮,格式如下:Javascript 单击元素的Grab属性-使用单击事件处理程序,javascript,jquery,facebook,Javascript,Jquery,Facebook,在我的html中,屏幕上有大约25个缩略图,每个缩略图都有一个类似的按钮,格式如下: <input type="button" class="btn btn-primary btn-small" id="likeBtn" data-id="545206032225604" value="Like"> 我遇到的问题是我不确定如何从实际单击的元素中获取数据id 如果我能提供更多信息,请告诉我 谢谢试试这个: $('#likeBtn').click(function () { v
<input type="button" class="btn btn-primary btn-small" id="likeBtn" data-id="545206032225604" value="Like">
我遇到的问题是我不确定如何从实际单击的元素中获取数据id
如果我能提供更多信息,请告诉我
谢谢试试这个:
$('#likeBtn').click(function () {
var dataId = $(this).prop('data-id');
console.log(dataId); //or do something else
facebook.likePhoto(controller.likeReady);
});
不过,如果我理解正确,您是否有多个id为像EBTN的元素?使用
阅读
Id属性必须是唯一的。改用类
更改HTML
使用classlikeBtn
而不是idlikeBtn
,正如您所说,您有许多这样的按钮
<input type="button" class="btn btn-primary btn-small likeBtn" data-id="545206032225604" value="Like">
阅读
在OP评论后更新
使用
由于元素是动态添加的,您无法将事件直接绑定到它们。因此您必须使用
语法
$( elements ).on( events, selector, data, handler );
好了,我把它改成了上面这样的类,删除了id=“likeBtn”。然而,我现在意识到我的事件处理程序甚至没有注册点击,因此代码永远不会执行$('.likeBtn')。单击(函数(){var data_id=$(this.data('id');console.log(data_id);//facebook.likePhoto(controller.likeReady);});你是否发现处理程序本身有什么问题,或者知道是什么原因导致了这一问题?抱歉,没有意识到评论的格式会如此糟糕,我的错。@Reece这些按钮是动态生成的吗?是的,我向facebook提出请求,拉下所有照片以获得缩略图。将它们存储在对象中,然后通过my view.displayProducts()运行它们。循环浏览并修改“我的缩略图”部分的HTML内容。@Reece欢迎提供帮助:)
<input type="button" class="btn btn-primary btn-small likeBtn" data-id="545206032225604" value="Like">
$('.likeBtn').click(function () {
var data_id = $(this).data('id');
facebook.likePhoto(controller.likeReady);
});
$(document).on('click','.likeBtn',function () {
var data_id = $(this).data('id');
facebook.likePhoto(controller.likeReady);
});
$( elements ).on( events, selector, data, handler );
$('#likeBtn').click(function () {
var id;
id = $(this).attr('data-id');
facebook.likePhoto(controller.likeReady);
});