UPDATE: Come di jQuery 1.7+, l'oggetto evento (e
nel seguente codice) oggetto conterrà una proprietà denominata e.isTrigger
che è true
se l'evento è stato attivato e indefinito se non innescato; questo non è documentato quindi controlla questo (demo) prima di usarlo. Se si utilizza una versione precedente di jQuery, utilizzare il seguente codice.
Potrebbe essere semplicemente più semplice passare un flag alla funzione. Ecco una 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);
});
Aggiornamento: data-attributi possono contenere JSON valido che viene convertito automaticamente in un oggetto (demo):
<div class="test" data-args='{ "quantity": 1, "type": "pizza", "extra1": "peperoni", "extra2": "cheese", "extra3": "cheesy bread" }'>Click Me</div>
Si noti che lo data-arg
utilizza una virgoletta singola per contenere il JSON, ma il JSON all'interno DEVE utilizzare le virgolette doppie attorno a ogni chiave e valore (a meno che non sia numerico).
quindi utilizzare il metodo di dati per estrarre le informazioni:
var args = $(this).data('args');
In alternativa, è possibile effettuare un data-attributo separato per ogni argomento (demo):
<div class="test" data-quantity="1" data-type="pizza" data-extra1="peperoni" data-extra2="cheese" data-extra3="cheesy bread">Click Me</div>
Quindi utilizzare raccogliere tutte i dati dall'elemento come segue:
var args = $(this).data();
Quindi perché si sta simulando un clic? Scrivi una nuova funzione che non condivide lo stesso codice. Puoi anche leggere su [event namespacing] (http://docs.jquery.com/Namespaced_Events) o [eventi personalizzati] (http://corymathews.com/jquery-custom-events/) per vedere se sarebbero aiuta la tua situazione. – Blazemonger
Nel tuo HTML hai 'onclick =" tigger_fn() "' e nella funzione Javascript hai 'trigget_fn()' - gli errori di battitura non aiuteranno a far funzionare nulla. Se non sono nel tuo codice reale, non dovrebbero nemmeno essere nella tua domanda. –
L'errore di battitura è rettificato qui .....In realtà non è nel codice – druveen