私たちが使用している Web ベースの販売ツール用のリモート コントロール システムがあります。これは、システムを jquery 1.8.1 に改良した後、jQuery 1.5.1 で非常にうまく機能しました。
システムはビューアーとコントローラーで動作し、コントローラーでクリックされたものはデータベースに保存され、ビューアーによって読み取られ、jquery .click() メソッドを使用してアクションが実行されます
コード:
function ProcessCommand() {
// Setup strings for return values.
xmlProcessCommand = GetXmlHttpObject();
// Setup strings require for function.
var strNewCommand;
var intSplitLocation;
// Get commands from database (AJAX)
var strCommandRequest = "../drone/processcommand.aspx";
strCommandRequest = strCommandRequest + "?sid=" + Math.random();
xmlProcessCommand.onreadystatechange = function () {
if (xmlProcessCommand.readyState == 4) {
// Items have arrived back, get item.
strNewCommand = xmlProcessCommand.responseText; // Instructions received.
// Check received instructions against stored instructions
if (strCurrentCommand != strNewCommand) {
// Place the new instructions into the current instructions for overload protection.
strCurrentCommand = strNewCommand;
// Extract code
intSplitLocation = strNewCommand.indexOf("|");
strNewCommand = strNewCommand.substring(0, intSplitLocation);
if (strNewCommand != "") {
// Click the specified ID
$('#' + strNewCommand).click(); // Click element
}
}
}
};
xmlProcessCommand.open("GET", strCommandRequest, true);
xmlProcessCommand.send(null);
// Loop function.
setTimeout("ProcessCommand()", 500);
}
strNewCommand は、(id に基づいて) クリックする要素と、データベースからのタイム スタンプを受け取り、それが新しいかどうかを判断し、それを実行します。
div をクリックするなどの単純なことは機能しますが、正しい要素名が受信され、要素が html 内で一意であっても、一部のアンカーはクリックできないようです。ライトボックス全体を制御できます。単純なことだけで、髪の毛が伸びます。
アラート(私が知っている悪い習慣)とfirebugを使用してチェックしましたが、要素名が入ってくることが示されています。クリックできない理由を教えてくれたらいいのにと思います。
どんな助けでも大歓迎です。