2015-09-10 3 views
0

Мне нужно изменить плагин для wordpress. я следующий код в внешнем файле JS:Вызывать перезаписанный метод .click()

jQuery(".ep_filter a").click(function(t) { // Here it sorts li elements with quicksand }); 

Так что приведенный выше код выполняется, когда пользователь нажимает на элемент LI.

Так что теперь я хочу вызвать метод выше, когда страница загружена. Потому что я могу дать параметр сайту с категорией. Поэтому я хочу фильтровать элементы.

Когда я выполняю щелчок() на объекте, он не запускает перезаписанный метод. Он просто выполняет обычный щелчок и переходит к href.

+0

Вместо создания 'anonymous' функции создать функцию и вызвать' 'function' onload' затем просто передать' function' в качестве аргумента в обработчик щелчка ... – brso05

+0

Пожалуйста, покажите код используется для вызова этот метод, когда страница загружается. И проверьте свою консоль. Возможно ли, что вы вызвали метод до его привязки? Вы использовали '$ (document) .ready()' или '$ (window) .load()' или что-то, чтобы убедиться, что обработчик кликов подключен в той точке, которую вы называете? – nothingisnecessary

ответ

1

включают e.preventDefault()

jQuery(".ep_filter a").click(function(e) { 
    e.preventDefault() 
    // Here it sorts li elements with quicksand 

}); 

, но вы, вероятно, хотите, чтобы пользователь мог нажать A-ссылки на их вручную нажатием кнопки, так что вы можете думать о флаге или что-то


версия 2

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

$(document).ready(function(){   
    var liTarget = $(myOnloadVariable) 
    quicksandSortLi(liTarget); 

}) 

jQuery(".ep_filter a").click(function(e) { 
    quicksandSortLi($(e.target)); //send a dom-object to the quicksand function 
}); 

function quicksandSortLi(targetLi){ 
    var target = event.target //this is which li was clicked on. 
    // Here it sorts li elements with quicksand 
} 
+0

В качестве события 'e' необходимо определить, я изменил сообщение немного – MaxZoom

+0

preventDefault() уже реализован. Чтобы очистить мой вопрос, я хочу, чтобы имитировать щелчок при загрузке страницы. Когда я вручную нажимаю на элемент, он идет хорошо, и элементы сортируются. Но я не знаю, как программно вызывать событие click. – errorcode

+0

Я отредактировал свой ответ со вторым решением. Не стесняйтесь спросить о чем-нибудь – NachoDawg

Смежные вопросы