0

私たちが使用している 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を使用してチェックしましたが、要素名が入ってくることが示されています。クリックできない理由を教えてくれたらいいのにと思います。

どんな助けでも大歓迎です。

4

1 に答える 1

0

昼食時にひらめきを得て、単純な古いアンカー リンクのいくつかを onclick イベントを介して「クリック」するように切り替えてみたところ、すべてが元に戻りました..

これで、 .click() メソッドはクリックにそれほど熱心ではありません<a href....>が、<a onclick=......>

于 2012-09-12T15:06:05.930 に答える