Неожиданное поведение из функции разделения JavaScript (Chrome / Firefox) - PullRequest
2 голосов
/ 17 января 2012

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

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

В обработчике displayAddy для события click я извлекаю строку (имя и фамилию человека) и разделяю имя и фамилию.,.

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

IE может понять это, но Chrome и Firefox не разделятся, если я не использую регулярное выражение split(/\s/) (если я не использую редактор кода Tryit на w3schools.com, и тогда он будет работать).

Вопрос: что именно здесь происходит и когда я получу немного позже при разборе пробелов в кросс-браузере?

(Примечание: я не думаю, что это имеет значение, но язапуск этого скрипта на вики-странице в SharePoint 2010)

1 Ответ

1 голос
/ 18 января 2012

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

function displayAddy() {

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

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

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

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

Вот пример этого в действии.

...