angularjs指示文からインデックスを指定するli要素のclickイベントをどのようにトリガできますか? 最初の要素のクリックをトリガするのに$ firstを使用しようとしましたが、機能しません。angularjs指示文からtriggerイベントclick
ありがとうございました。
angularjs指示文からインデックスを指定するli要素のclickイベントをどのようにトリガできますか? 最初の要素のクリックをトリガするのに$ firstを使用しようとしましたが、機能しません。angularjs指示文からtriggerイベントclick
ありがとうございました。
おそらくあなたはこれを達成するための別の方法です。ディレクティブへのインデックスとアイテムの両方をパスし、テンプレート内のディレクティブの設定にHTMLを聞かせて:
デモ:http://plnkr.co/edit/ybcNosdPA76J1IqXjcGG?p=preview
HTML:
<ul id="thumbnails">
<li class="thumbnail" ng-repeat="item in items" options='#my-container' itemdata='item' index="$index">
</li>
</ul>
JSディレクティブ:
app.directive('thumbnail', [function() {
return {
restrict: 'CA',
replace: false,
transclude: false,
scope: {
index: '=index',
item: '=itemdata'
},
template: '<a href="#"><img src="{{item.src}}" alt="{{item.alt}}" /></a>',
link: function(scope, elem, attrs) {
if (parseInt(scope.index) == 0) {
angular.element(attrs.options).css({'background-image':'url('+ scope.item.src +')'});
}
elem.bind('click', function() {
var src = elem.find('img').attr('src');
// call your SmoothZoom here
angular.element(attrs.options).css({'background-image':'url('+ scope.item.src +')'});
});
}
}
}]);
別の回答で指摘されているように、画像にクリックを追加する方がよいでしょう。
更新
デモのリンクが間違っていました。これは、問題へのディレクティブのアプローチとラングドンの答えを拡張したものですhttp://plnkr.co/edit/ybcNosdPA76J1IqXjcGG?p=preview
これはそれを行うにはアンギュラ方法の詳細です:http://plnkr.co/edit/xYNX47EsYvl4aRuGZmvo?p=preview
ng-click
です。最終的な要件が異なることが、click
を結合して、そのほとんどは、テンプレートで初期ロード上の誤ったサーバー呼び出しを回避するためにngSrcのsrc
は、やり過ぎだっ変更するディレクティブを使用してもあなたがよbackground-image
を本当に使用する必要がある場合は、実際のデータがロードされるまでbackground-image
スタイルの設定を延期するngSrcのような指示が必要です。ここで:それはに更新されました。あなたがページに複数のギャラリーを持っているなら、これはそれほど大騒ぎなしにそれについて行くための1つの方法かもしれません。
使用法:
<gallery images="items"></gallery>
<gallery images="cats"></gallery>
これは私がボタンをクリックし、ページのロードをトリガすることができた方法です。
<li ng-repeat="a in array">
<a class="button" id="btn" ng-click="function(a)" index="$index" on-load-clicker>
{{a.name}}
</a>
</li>
ngのリピートからインデックスをとり、インデックス内の最初のボタンを呼び出し、ページのロード時、それをクリックして条件を使用して、簡単な指示。
これは、私が最初にプログラムで自動クリックをトリガーすることができた唯一の方法でした。angular.element(document.querySelector('#btn')).click();
コントローラからは機能しませんでしたので、ページロード時にクリックを実行しようとしていて、インデックスを渡すことでどのボタンをクリックするかを指定することができます。私はこのスタックオーバフローの回答を別の投稿参照:https://stackoverflow.com/a/26495541/4684183 onLoadClickerディレクティブから得ました。
票を落とす場合は理由を説明してください。あなたは説明なしで否定的でコミュニティを助けません。私は他の解決策が私のために働かなかったので、上記の答えを掲示しました。 –
おそらくあなたを悲しませようとしていた人でした。いつも私に起こります。少なくとも私のupvoteは0に戻ります\\ _ shrug_ / – activedecay
あなたが試したコードを投稿できますか? – lucuma
コード経由でクリックイベントをトリガーしたいと言っていますか?なぜあなたはそれをしたいのですか? – tamakisquare
イメージをリストに表示しようとしています。私はページが読み込まれるときに、デフォルトで最初のイメージを表示したい。下記のプランナーをご覧ください。現時点では、最適な解決策ではないが、anglejsに変更する必要があるjQueryタイムアウト関数を使用しています。 http://plnkr.co/edit/CVnp9FKcIMr7GoSpfcoX – ayimos