我有一张地图更改了它的coordonated,名称和ID,与ajax $ .post:
<map name="diffmap1" id="diffmap1">
<area shape="poly" coords="76,269,50,243,51,221,82,255" class="diff diff1" onFocus="blur();" >
<area shape="poly" coords="152,347,253,292,264,307,167,358" class="diff diff2" onFocus="blur();" >
<area shape="poly" coords="93,244,164,215,171,233,97,264" class="diff diff3" onFocus="blur();" >
</map>
Jquery的:
$(document).on('mousedown', '.diff', function () {
e.preventDefault();
$(document).off('mousedown', $(this));
});
Ajax响应:
$('map').attr('name', 'diffmap'+response.next).attr('id', 'diffmap'+response.next);
$('#diffmap'+response.next+' .diff3').attr('coords', response.nextcoord[0]);
$('#diffmap'+response.next+' .diff1').attr('coords', response.nextcoord[1]);
$('#diffmap'+response.next+' .diff2').attr('coords', response.nextcoord[2]);
我希望当我点击一个coordonate取消绑定时,所以你只能点击一次,而且当我进入下一个级别时,ajax会更改coordonates以便能够再次单击它们。
如果我使用:
$(document).off('mousedown', $(this));
它不起作用,或者我使用
$(document).off('mousedown', '.diff');
当我点击其中一个时,它将解除所有协调器的绑定。
有什么想法吗?
答案 0 :(得分:1)
使用委托时,您无法关闭单个元素。我建议您使用data
,就像那样:
$(document).on('mousedown', '.diff', function () {
e.preventDefault();
if($(this).data('__off') !== true){
$(this).data('__off', true);
//Your function here.
}
});
答案 1 :(得分:0)
您可以添加/删除类以启用/禁用mousedown,例如:
$(document).on('mousedown', '.diff', function (e) {
e.preventDefault();
$(this).removeClass("diff");
});