Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击元素的Grab属性-使用单击事件处理程序_Javascript_Jquery_Facebook - Fatal编程技术网

Javascript 单击元素的Grab属性-使用单击事件处理程序

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

在我的html中,屏幕上有大约25个缩略图,每个缩略图都有一个类似的按钮,格式如下:

<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

使用class
likeBtn
而不是id
likeBtn
,正如您所说,您有许多这样的按钮

<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);
});