jQuery новый объект .привязка

#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") внутрь обработчика, то он также не будет запускаться до тех пор, пока не будет запущено событие.