バインド解除メソッドに従って、要素をクラスでバインド解除しようとしまし'.rightclickarea'
た。
$('.rightclickarea').unbind();
$('.rightclickarea').bind("contextmenu",function(e){
e.preventDefault()
});
しかし、要素はイベントのバインドが解除されていません。そのため、このメソッド BindBookMarkPopUp() を呼び出すたびに、問題が発生しているバインドが再試行されます。jqueryの各バインディングの前にアンバインドできる方法はありますか。ありがとう!
function BindBookMarkPopUp() {
$('.rightclickarea').unbind("contextmenu");
$('.rightclickarea').bind('contextmenu', function(e) {
id = $(this).attr("id");
$("#current_id").html(id.substring(3));
$("#current_id").attr("data-type",1);
var $cmenu = $(".vmenu_bookmark");
$('<div class="overlay"></div>').css({
left : '0px',
top : '0px',
position : 'absolute',
width : '100%',
height : '100%',
zIndex : '100'
}).click(function() {
$(this).remove();
$cmenu.hide();
}).bind('contextmenu', function() {
return false;
}).appendTo(document.body);
$(".vmenu_bookmark").css({
left : e.pageX,
top : e.pageY,
zIndex : '101'
}).show();
return false;
});
$('.vmenu_bookmark .first_li').live('click', function() {
if ($(this).children().size() == 1) {
alert("book_marks");
if ($(this).attr("id") == "vmenu_bookmark") {
$.colorbox({
inline : true,
width : 280,
height : 120,
href : "#title_content",
title : "Enter title for Bookmark"
});
}
$('.vmenu_bookmark').hide();
$('.overlay').hide();
}
});
$('.vmenu_bookmark .second_li').live('click', function() {
if ($(this).children().size() == 1) {
if ($(this).attr("id") == "vmenu_project") {
alert("project_click")
PopulateProjects();
$.colorbox({
inline : true,
width : 500,
height : 400,
title : "",
href : "#title_content_project"
});
}
$('.vmenu_bookmark').hide();
$('.overlay').hide();
}
});
HTML コード:
<div class="vmenu vmenu_bookmark">
<div class="first_li" id="vmenu_bookmark"><span>Add to Bookmark</span></div>
<div class="second_li" id="vmenu_project"><span>Add to Project</span></div>
<div style="display: none;" class="sep_li"></div>
<div style="display:none;" class="first_li"><span>XYZ</span>
<div class="inner_li">
<span>ABC</span>
<span>PQR</span>
<span>MNO</span>
</div>
</div>
</div>