2012-01-17 5 views
2

Я добавляю строку (т. Е. «Боб Смит») из события щелчка jQuery, захваченного с помощью функции on. , ,Неожиданное поведение из функции разделения JavaScript (Chrome/Firefox)

$(".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)

+0

Сплит работает со строкой. name.split (""); действует. –

+0

Так как пример работы [this] (http://jsfiddle.net/5MC2k/) работает в Firefox, Chrome и IE, должно произойти что-то еще, так как split() не имеет проблем, разделяющих пространство. Вы пытались зарегистрировать event.data.fullName в браузере? – j08691

+0

Можете ли вы предоставить один исполняемый образец? http://jsfiddle.net/ –

ответ

1

Я не уверен, что происходит (я проверил его и увидеть некоторые странное поведение) , но вы можете работать вокруг него, делая что-то вроде этого

function displayAddy() { 

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

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

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

Поскольку мероприятие прошло на обратный вызов обратного вызова уже есть this объекта. в этом случае объект this будет объектом DOM с классом #name.

Это example из этого в действии.

+0

Спасибо, Brombomb, но проблема заключается в html и способах интерпретации пробелов в браузерах (см. Мой комментарий в исходном сообщении и выше). У меня уже было обходное решение, которое должно было использовать выражение reg '\ s' вместо буквального пространства. – Toadmyster