我在滚动列表中使用jquery touchwipe插件,我无法获得 来自$(this)的属性。我想使用$(this)来获取其子项elment class =“t7 edit”并向其添加“show”类。有人知道如何修复它吗?
HTML:
<div id="main_list_wrapper">
<div class="item">
<div class="t7 edit"></div>
<div class="t8 cancel"></div>
</div>
<div class="item">
<div class="t7 edit"></div>
<div class="t8 cancel"></div>
</div>
<div class="item">
<div class="t7 edit"></div>
<div class="t8 cancel"></div>
</div>
<div class="item">
<div class="t7 edit"></div>
<div class="t8 cancel"></div>
</div>
<div class="item">
<div class="t7 edit"></div>
<div class="t8 cancel"></div>
</div>
</div>
脚本代码:
var $main_list_wrapper = $("#main_list_wrapper").find('.item');
$main_list_wrapper.touchwipe({
preventDefaultEvents: false,
wipeLeft: function() {
$(this).find('.t8.cancel').removeClass('show');
$(this).find('.t7.edit').removeClass('show');
var thisclass = $(this).attr('class');
alert(thisclass);
return false;
},
wipeRight: function() {
$sb(this).find('.t8.cancel').addClass('show');
$sb(this).find('.t7.edit').addClass('show');
return false;
}
});
喜欢警报(thisclass)。它显示“未定义”。
谢谢大家。我的朋友写给我,这很有用!
$main_list_wrapper.each(function () {
var $this = $sb(this);
$this.touchwipe({
preventDefaultEvents: false,
wipeLeft: function() {
var $pcs = $this;
$pcs.find('.t8').removeClass('show');
$pcs.find('.t7').removeClass('show');
return false;
},
wipeRight: function() {
var $pcs = $this;
$pcs.find('.t8').addClass('show');
$pcs.find('.t7').addClass('show');
return false;
}
});
});
答案 0 :(得分:0)
好吧,$("#main_list_wrapper")
是NULL
。确保此代码段位于JQuery onLoad中:$(document).ready(function () { /* CODE */ });
find()
获取以逗号分隔的类名列表
更改:$(this).find('.t8.cancel')
到此:$(this).find('.t8, .cancel')
答案 1 :(得分:0)
$(this)
是指function()
所属的对象,而不是指$main_list_wrapper
。
请参阅此post
您可以改为使用$main_list_wrapper.find('.t8.cancel').removeClass('show');
。