утверждение jQuery поддерживает / безопасное программирование?

window.name имеет специальную цель и предполагается, что это строка. Кажется, что Chrome явно передал его в строку, поэтому var name = {}; фактически заканчивает тем, что дает глобальную переменную name (т.е. window.name) значение "[object Object]". Поскольку это примитив, свойства (name.FirstName) не будут «прилипать».

Чтобы обойти эту проблему, не используйте name в качестве глобальной переменной.

18
задан Simon_Weaver 31 January 2009 в 07:55
поделиться

2 ответа

Не похоже, что существует что-либо встроенное. Но запись расширения не слишком трудна:

$.fn.assertSize = function(size) { 
  if (this.length != size) { 
    alert("Expected " + size + " elements, but got " + this.length + ".");
    // or whatever, maybe use console.log to be more unobtrusive
  }
  return this;
};

Использование состоит точно в том, как Вы предполагаете в своем вопросе.

$("#btnSignup").assertSize(1).click(function() {
  return validateForm();
);

Примечание, что в его текущей форме функция возвращается успешно, даже если утверждение перестало работать. Что-либо, что Вы объединили в цепочку, будет все еще выполняться. Используйте return false; вместо return this; для остановки дальнейшего выполнения цепочки.

15
ответ дан 30 November 2019 в 08:43
поделиться

Вы, вероятно, хотите http://docs.jquery.com/Traversing/eq#index :

Уменьшают набор подобранных элементов к единственному элементу.

, Если Ваш селектор не возвращает объектов затем, jQuery просто не выполнит цепочечный код, поскольку он не имеет никаких элементов для выполнения их на

-3
ответ дан 30 November 2019 в 08:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: