我一直在尝试从下面的单击功能中删除此#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 );
}
}
});
});
任何帮助都将非常感谢:)
答案 0 :(得分:2)
你可以使用class并以这种方式调用ajax函数。这是您的演示代码。您可以使用此功能所需的id。我在事件上使用文件来调用该类的每个实例。 Fiddel link
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);
});
});
答案 1 :(得分:0)
您可以为要使其处理的所有元素添加公共类,并使用常规on()
单击一个类时添加另一个类,这样您就不会再次请求one()
功能
$(function() {
// better to use `document` instead of `this` for readability
$(document).on('click', '.my-div', function(e) {
var that = $(this);
if (that.hasClass('already-clicked')) {
// bail out
console.log('Already clicked')
return
} else {
that.addClass('already-clicked');
var data = that.data();
data.id = this.id;
console.log(JSON.stringify(data))
// do your ajax
}
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="my-div" id="1" data-rel="rel_1" data-url="url_1">Div one</div>
<div class="my-div" id="2" data-rel="rel_2" data-url="url_2">Div two</div>
<div class="my-div" id="3" data-rel="rel_3" data-url="url_3">Div two</div>
答案 2 :(得分:-2)
$(this).one('click', '#static', function( e )
在代码的这一行中,您应该使用class作为元素的标识符。 &#34; ID&#34;是唯一的,它应该只分配给一个元素。
$(body).one('click', '.yourclass', function( e )
并将该类添加到您想要的所有元素中。