#jquery
#jquery
Вопрос:
Я наткнулся на фрагмент кода, который пытаюсь понять. Я нигде этого не нашел. Код по-прежнему работает нормально. Речь идет о функции .bind jQuery:
$(new Object()).bind()
что функция привязки jQuery делает с «новым объектом ()». Кто-нибудь может уточнить?! Спасибо.
Комментарии:
1. вы сказали, что это работает, что именно этот код делает в вашей кодовой базе? С какой целью вы это использовали?
2. это довольно большой объем кода… я просто просматриваю это .. и увидел это — поискал в Интернете — не нашел — и подумал спросить сообщество, знает ли кто-нибудь что-то подобное. Вот функция: $(new Object()).bind(«что-то», функция(событие, данные){ });
Ответ №1:
Этот оператор сам по себе ничего не сделает, на самом деле, за исключением, возможно, ошибки во время выполнения. Методу jQuery «bind()» требуется хотя бы один параметр.
Однако даже с параметром это ничего не даст, потому что все дело в привязке обработчика событий. Не имеет смысла делать это с простым объектом JavaScript.
Вызов «bind()» обычно используется следующим образом (хотя есть варианты):
$('selector').bind('event-name', function(ev) { /* event handler code */ });
Строка «selector» используется для поиска одного или нескольких элементов DOM на странице.
Комментарии:
1. Это больше похоже на это: $(new Object()).bind(«что-то», функция (событие, данные){ });
2. Ну почему вы не указали это в исходном вопросе? Вам не приходило в голову, что аргументы функции могут быть важны при определении того, что делает функция?
3. Ну, извините, но new Object() — на какой селектор он ссылается — или на какой-либо
4. Вот что я имел в виду под своим ответом —
new Object()
просто создает простой объект JavaScript, и на самом деле не имеет смысла привязывать к нему обработчик событий. Однако я не думаю, что это чему-нибудь повредит, вероятно, поэтому код выглядит «работающим».5. да, я знаю, что это должен быть определенный селектор, но «new Object ()» не имеет никакого смысла — насколько я понимаю — но удивительно, что он не выдает никаких ошибок — но thnks
Ответ №2:
$(new Object()).bind("something", function(event, data){ });
Это означает, что вы привязываете делегат функции с параметрами «событие» и «данные» к событию «что-то» нового объекта. Всякий раз, когда вновь созданный объект запускает событие «что-то», функция будет выполняться.
Комментарии:
1. Вы сказали «Всякий раз, когда вновь созданный объект запускает «что-то «событие», —> означает ли это какой-либо вновь созданный объект?
2. нет, только тот, который создан в объявлении. Чтобы привязать его к любому, вам нужен другой подход к выбору объекта. Попробуйте добавить класс к этим объектам и использовать $(«. NewObjectClass»).bind() вместо
3. 🙂 спасибо за ответ, но это первоначальный вопрос — я знаю, что это должен быть конкретный селектор, но new Object () что это за селектор, к которому что-то привязывается
4. как объяснил Пойнти, это просто создает пустой экземпляр объекта в памяти без указания типа. Итак, я думаю, откуда бы вы ни взяли этот пример, они использовали его в качестве заполнителя, чтобы показать, что методу .bind() требуется экземпляр объекта. просто new object () ничего не сделает.
5. хм, это готовый продукт компании, который мой мозг эйнштейна пытается понять….
Ответ №3:
Я решил эту проблему. Для тех, кто заинтересован-> Он состоит из двух частей:
<a id="refButton" href="#">Click Me !!</a>
**Part 1:**
$(new Object()).bind("pressMe", function(event, data){
$(document).ready(function(){
$('#refButton').bind("click",function(){
alert("Hi There !!");
});
});
});
**Part 2**
if(some condition == TRUE){
$.event.trigger("pressMe");
}
Итак, все знают, что «$(document).ready(функция(){« выполняется первой, но таким образом выполняется только тогда, когда условие части 2 ИСТИННО, чем запускает событие «pressMe», определенное в части 1, которое в конечном итоге прослушивает событие click идентификатора #refButton.
Но для меня все еще остается загадкой, как пустой new Object () — отключает «$(document).готовая (function(){« функциональность до активации триггера.
Но спасибо всем, кто ответил.
Комментарии:
1. Это «отключает» его, потому что
$(document).ready()
код находится внутри функции-обработчика, и обработчик не будет запущен, пока не произойдет событие. Если вы поместитеalert("Hello World")
внутрь обработчика, то он также не будет запускаться до тех пор, пока не будет запущено событие.