Ho la seguente mark-up:Knockout - Getting cliccato elemento
<fieldset>
<div>
<label class="editor-label">Question 1?</label>
<input type="text" class="editor-field" />
<button type="button" data-bind="click: helpClicked">Help</button>
<p class="help">Help 3</p>
</div>
<div>
<label class="editor-label">Question 2?</label>
<input type="text" class="editor-field" />
<button type="button" data-bind="click: helpClicked">Help</button>
<p class="help">Help 3</p>
</div>
<div>
<label class="editor-label">Question 3?</label>
<input type="text" class="editor-field" />
<button type="button" data-bind="click: helpClicked">Help</button>
<p class="help">Help 3</p>
</div>
</fieldset>
voglio commutare la visibilità del l'<p>
con la classe help
nella stessa Div
del pulsante cliccato. Sto cercando di usare $ (this) per determinare quale pulsante è stato cliccato e quindi ho potuto ottenere l'elemento "help" corretto da lì.
Il problema è che $(this)
non restituisce il pulsante su cui si fa clic.
Al momento sto cercando di nascondere semplicemente il pulsante cliccato come:
var viewModel = {
helpClicked: function() {
$(this).hide();
}
};
ko.applyBindings(viewModel);
Questo non funziona. Qualcuno può aiutare, per favore?
potresti trovare che devi usare' currentTarget' se stai usando qualcosa come '
È sempre possibile trovare gli argomenti eseguendo il debug e controllando l'oggetto 'arguments'. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments – christo8989