Javascript 如何获取被单击元素的ID并将其存储在变量中,并在进行AJAX调用的函数中使用它

Javascript 如何获取被单击元素的ID并将其存储在变量中,并在进行AJAX调用的函数中使用它,javascript,jquery,ajax,Javascript,Jquery,Ajax,我一直在尝试从下面的一键函数中删除这个#staticid,并使用变量,这样它会自动获取id,如#static,#dynamic…等,并将其放入一键函数中。这将节省我一次又一次地复制和粘贴相同的函数,只需更改它的ID名称。此外,这还将使代码看起来简洁明了 jQuery(document).ready(function($){ // Home Page Static Portfolio Ajax Query $(this).one('click', '#static', function( e ){

我一直在尝试从下面的一键函数中删除这个
#static
id,并使用变量,这样它会自动获取id,如
#static
#dynamic
…等,并将其放入一键函数中。这将节省我一次又一次地复制和粘贴相同的函数,只需更改它的ID名称。此外,这还将使代码看起来简洁明了

jQuery(document).ready(function($){
// Home Page Static Portfolio Ajax Query
$(this).one('click', '#static', function( e ){
    var that = $(this);
    var id = that.attr('id');
    var rel = that.data('rel');
    var ajaxurl = that.data('url');
    $.ajax({
        url : ajaxurl,
        type : 'POST',
        data : {
            rel : rel,
            action : 'home_filter_' + id + '_portfolios'
        },
        error : function( response ){
            console.log( response );
        },
        success : function ( response ){
            if ( response == '' ) {
                $('figure' + id).after( '<div class="end_of_testimonial"><h3>You have reached the end of the line</h3><p>No more portfolios to load!</p></div>' );
            } else {
                $('.gallery-wrapper').append( response );
            }
        }
    });
});
jQuery(文档).ready(函数($){
//主页静态组合Ajax查询
$(此).one('click','#static',函数(e){
var,该值=$(此值);
var id=that.attr('id');
var rel=that.data('rel');
var ajaxurl=that.data('url');
$.ajax({
url:ajaxurl,
键入:“POST”,
数据:{
雷尔:雷尔,
操作:'home\u filter\u'+id+'\u公文包'
},
错误:函数(响应){
控制台日志(响应);
},
成功:功能(响应){
如果(响应=“”){
$('figure'+id).after('youhavehavedtheendofline没有更多的投资组合要加载!

'); }否则{ $('.gallery wrapper').append(响应); } } }); });
任何帮助都将不胜感激:)

在代码的这一行中,您应该使用类作为元素的标识符。“id”是唯一的,应该只分配给一个元素

$(body).one('click', '.yourclass', function( e ) 

并将该类添加到所需的所有元素中。

您可以将一个公共类添加到所有要处理该类的元素中,并使用常规的
on()

单击一个类后添加另一个类,这样您就不会再次发出该请求来替换
one()
功能

$(函数(){
//为了便于阅读,最好使用'document'而不是'this'
$(文档).on('click','my div',函数(e){
var,该值=$(此值);
if(that.hasClass('ready-clicked')){
//纾困
console.log('已单击')
返回
}否则{
addClass('ready-clicked');
var data=that.data();
data.id=this.id;
log(JSON.stringify(数据))
//做你的ajax
}
});
})

第一组
第二组

Div two
您可以使用类并以这种方式调用ajax函数。这是您的演示代码。您可以为该函数使用任意数量的id。我使用document on event调用该类的每个实例。


很抱歉,最后的代码是$(body)。one('click','.yourclass',函数(e)将不起作用,因为使用
one()
单击该类的任何一个都会阻止代码在其他元素上运行,而classIf不仅仅是使用
.on()
而不是
.one()
…请编辑您的问题。可以更好地定义您的问题。您希望得到什么帮助?
$(body).one('click', '.yourclass', function( e ) 
jQuery(document).ready(function($){
    // Home Page Static Portfolio Ajax Query
    $(document).on('click', '.clickclass', function( e ){
        var that = $(this);
        var id = that.attr('id');
        var rel = that.data('rel');
        var ajaxurl = that.data('url');
            alert(id);

    });
    });