次のプラグインjqueryを使用してテーブルに右クリックコンテキストメニューを追加しようとしている既存のWebサイトを持っています .php名のテーブルは「Table1」です。次のjavascriptを使用してメニューを作成しています:
$(document).ready(function()
{
$("#Table1").contextmenu({
delegate: ".RightClickMenu",
menu: [
{title: "Add", action: function(event, ui) {
// Do something
}},
{title: "----"},
{title: "Refresh", action: function(event, ui) {
// Do something
}}
]
});
});
これにより、「追加」と「更新」を含むメニューが作成されます (実際のサイトでは別のメニューです) このコードを Web サイトに実装すると、Chrome で動作します (テーブルを右クリックすると、クリックしたテーブルにメニューが表示されます) ) しかし、IE を使用してサイトを開くと、メニューは引き続き開きますが、IE の右上隅に表示されます...なぜこれが起こっているのですか? 私は何を間違っていますか?
編集:Apiから次のコードを使用しましたが、現在は機能しています... IE8のようです
$("#StockListWorkBenchTbl").contextmenu({
delegate: ".StockListWorkBenchTblRightClickMenu",
menu: [
{title: "Review Bids", action: function(event, ui) {
var row = ui.target.parent();
var BidID = row.attr('id');
var selFlowStat = row.find('td:eq(2)').html();
CallFetchReviewBids(BidID, selFlowStat);
}},
{title: "Extend Expiry", action: function(event, ui) {
/*var BidID = ui.target.parent().attr('id');
var BidRow = ui.target.parent();
ExtendExpiry(BidID, BidRow);*/
$("#StockListWorkBenchTbl tr").each(function(){
var BidRow = $(this);
var BidID = BidRow.attr("id");
var Checkbox = $(this).find("input:checkbox:first");
if (Checkbox.attr("id") !== "StockListWorkBenchAllChecked")
{
if (Checkbox.is(":checked"))
{
ExtendExpiry(BidID, BidRow);
}
}
});
}},
{title: "----"},
{title: "Refresh", action: function(event, ui) {
CallToFetchWorkBench(0);
}}
],
position: function(event, ui){
return {my: "left top", at: "left bottom", within: ui.target};
}
});