私の問題は、アンカーの onclick イベントが発生しないことです。ここに私のjqueryコードがあります
これは pageLoad イベントです
function pageLoad() {
コンテキストメニューイベントをアンカーにバインドしています
$('#ctl00_ContentPlaceHolder1_gvParamShow a').bind("contextmenu", function(e) {
// alert('event fired');
e = jQuery.event.fix(e);
$('#contextMenu').parent().css('position', 'absolute');
$('#contextMenu').css('borderColor', 'Black').css('borderStyle', 'Solid').css('borderWidth', '1px').css('backgroundColor', '#EEEEEE').css('color', 'Black');
$('#contextMenu').show();
//alert('appended');
var mouseX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
var mouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
document.getElementById('contextMenu').style.top = mouseY + 'px';
document.getElementById('contextMenu').style.left = mouseX + 'px';
return false;
});
これが問題の領域です. コードの最後にある説明を読んでください.
$('*').not($('.anchorClass')).mousedown(function() {
if ($(this).is('a')) {
}
else {
$('#contextMenu').hide();
}
});
}
アンカークリックで発生するイベント
function showLiveTrack() {
alert('hey');
return false;
}
これが私のコンテキストメニューコードです
<div id="contextMenu">
<div><a onclick="showLiveTrack();" class="anchorClass">Show Live Track</a></div>
<div><a class="anchorClass">Bhuwan</a> </div>
<div><a class="anchorClass">Bhuwan</a> </div>
<div><a class="anchorClass">Bhuwan</a> </div>
</div>
私の質問の説明:
コンテキスト メニューのアンカー クリックで showLiveTrack() 関数を起動したい。また、ユーザーが画面上の他の場所をクリックすると、コンテキスト メニューが消えるようにしたいと考えています。考えられるあらゆる方法を試しましたが、このアンカーのイベントを発生させることができません。代わりに、コンテキスト メニューを非表示にします。なんで?
以下のコードを削除すると
$('*').not($('.anchorClass')).mousedown(function() {
if ($(this).is('a')) {
}
else {
$('#contextMenu').hide();
}
});
その後、イベントが発生します..
私は何を間違っていますか???