2

関数を使用してトラップされた jQuery クリック イベントから文字列 (つまり、'Bob Smith') を追加しますon。. .

$(".vendorLookup").on("click", { fullName: $(this).text() }, displayAddy);

クリック イベントの displayAddy ハンドラーで、文字列 (人物の姓と名) を抽出し、姓と名を分割します。. .

var name = event.data.fullName;
var parts = name.split(" ");

IE はこれを理解できますが、正規表現を使用しない限り、Chrome と Firefox は分割されませんsplit(/\s/)(w3schools.com Tryit コード エディターを使用して動作しない限り)。

質問: ここで正確に何が起こっているのですか? また、後でクロス ブラウザーでスペースを解析するときに、いつこの問題に遭遇するのでしょうか?

(注: 重要ではないと思いますが、SharePoint 2010 の wiki ページでこのスクリプトを実行しています)

4

1 に答える 1

1

何が起こっているのかわかりませんが(テストしたところ、奇妙な動作が見られました)、次のようなことで回避できます

function displayAddy() {

    var parts = $(this).text().split(" ");

    $('#fname').html(parts[0]);
    $('#lname').html(parts[1]);
}

$('#name').on("click", displayAddy);

イベントはコールバックに渡されるため、コールバックには既にthisオブジェクトがあります。この場合、thisオブジェクトは class を持つ DOM オブジェクトになります#name

実際の動作を次に示します。

于 2012-01-17T20:28:55.197 に答える