UPDATE: На JQuery 1.7+, объект события (e
в коде ниже) объект будет содержать свойство с именем e.isTrigger
которое true
, если событие было вызвано и неопределенным, если не срабатывает; это недокументировано, поэтому проверьте это (demo) перед его использованием. Если используется старая версия jQuery, используйте приведенный ниже код.
Возможно, будет проще передать флаг вашей функции. Вот demo:
HTML
<button>Trigger a click below</button>
<div id="test">Click Me</div>
Script
$('#test').click(function(e, triggered){
var msg = (triggered) ? ', triggered' : '';
console.log('clicked' + msg);
});
$('button').click(function(){
// pass a true flag to the click function to indicate
// it's been triggered
$('#test').trigger('click', true);
});
Update: данные-атрибуты могут содержать действительный JSON, который автоматически преобразуется в объект (demo):
<div class="test" data-args='{ "quantity": 1, "type": "pizza", "extra1": "peperoni", "extra2": "cheese", "extra3": "cheesy bread" }'>Click Me</div>
Обратите внимание, что data-arg
использует одиночную кавычку, чтобы содержать JSON, но JSON внутри ДОЛЖЕН использовать двойные кавычки вокруг каждой клавиши и значения (если это не числовое).
Затем с помощью метода данных для извлечения информации:
var args = $(this).data('args');
В качестве альтернативы, вы можете сделать отдельный данных-атрибут для каждого аргумента (demo):
<div class="test" data-quantity="1" data-type="pizza" data-extra1="peperoni" data-extra2="cheese" data-extra3="cheesy bread">Click Me</div>
Затем с помощью собрать все данные из элемента следующим образом:
var args = $(this).data();
Тогда почему вы имитируете клик? Напишите новую функцию, которая не использует один и тот же код. Вы также можете прочитать [пространство имен событий] (http://docs.jquery.com/Namespaced_Events) или [пользовательские события] (http://corymathews.com/jquery-custom-events/), чтобы узнать, помогите вашей ситуации. – Blazemonger
В вашем HTML есть 'onclick =" tigger_fn() ", а в Javascript есть функция' function trigget_fn() '- опечатки не помогут сделать что-либо работать. Если они не в вашем фактическом коде, они тоже не должны быть в вашем вопросе. –
Ошибка здесь выпрямлена .....На самом деле это не в коде – druveen