2016-08-19 3 views
1

Это моя функцияКак запустить функцию OnLoad, а затем вызвать его снова с событием OnClick

$(document).ready(function() { 
    "use strict"; 

    var $rows_views = $('.view-display-id-block_1 .view-content').find('[class*="views-row-"]'); 
    $rows_views.each(function(index) { 
     $('.show-more').click(function() { 
      if (index > (($rows_views.length/3) - 1)) { 
       $('.views-row-' + (index + 1)).toggle(); 
      } 

      $('.pager').toggle(); 
     }); 
    }); 
}); 

Я хочу, чтобы запустить его, чтобы скрыть строки, а затем переключить его всякий раз, когда кнопка получает щелкнул, чтобы показать их. Как запустить функцию в готовом документе, а затем снова запустить эту функцию в событии клика?

+4

вы кладете код в функции, вызовите эту функцию от $ (документ) .ready, и указать ту же функцию в случае щелчка –

+1

вы можете обернуть его к функция и повторное использование этой функции с помощью onClick – fernando

+1

+ также загляните в использование обхода DOM вместо инкрементных атрибутов class/id. Это делает ваш код более простым и более DRY –

ответ

0

Вы создаете ваш function вне (document).ready() рамки, и вы должны быть в состоянии звонить с element и от вашей готовности function

$(document).ready(function(){ 
 
    myFunc(); // You call your function here 
 
    
 
    }); 
 

 
function myFunc() { 
 
    alert('click'); // You do your action here aka hide show 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p onclick="myFunc();">click me </p><!--note the onclick attribute-->

0

Вы просто должны добавить .click() и поместите вашу функцию $ rows_vies_each в функцию.

Как это

$(document).ready(function() { 
"use strict"; 

var clickMe = document.getElementById('idOfThingToClick') 

var $rows_views = $('.view-display-id-block_1 .view-content').find('[class*="views-row-"]'); 

function bestFunction(){ 
    $rows_views.each(function(index) { 
     $('.show-more').click(function() { 
      if (index > (($rows_views.length/3) - 1)) { 
       $('.views-row-' + (index + 1)).toggle(); 
      } 

      $('.pager').toggle(); 
     }); 
    }); 
} 
$(clickMe).click(function(){ 
    bestFunction(); 
}) 
}); 
1

Чужих состояний в приведенных выше комментариев, вы можете переместить функцию вы вызываете в вашем случае клик снаружи и в верхней части документа готовой функции, а затем просто вызвать его снова (по имени) в случае щелчка:

$(document).ready(function() { 
    "use strict"; 

    // Invoke your function here 
    callMeTwice(); 


    // define your function here 
    function callMeTwice() { 
     // Do some stuff 
    } 

    // Invoke your function again within the click event here 
    $(domElement).click(callMeTwice); 
}); 
Смежные вопросы