プロジェクト メニューにラウンドアバウト スクリプトを使用しています。メニュー項目をクリックした後、いくつかのアクションがあります。この選択したアイテムを2回クリックした後に、このアクション/機能を起動したい。これを行う方法を手伝ってもらえますか?
これは私の機能の始まりです:
$('.main_content ul li').bind({click: function(){
プロジェクト メニューにラウンドアバウト スクリプトを使用しています。メニュー項目をクリックした後、いくつかのアクションがあります。この選択したアイテムを2回クリックした後に、このアクション/機能を起動したい。これを行う方法を手伝ってもらえますか?
これは私の機能の始まりです:
$('.main_content ul li').bind({click: function(){
API:http ://api.jquery.com/dblclick/
イベントハンドラーを「dblclick」JavaScriptイベントにバインドするか、要素でそのイベントをトリガーします。
それがあなたの大義に役立つことを願っています:)
コード
$('.main_content ul li').dblclick( function(){
});
編集これを無視して、Tats_innitの答えを使用してください。私は恥ずかしそうにjQueryのdblclick機能に気づいていませんでした。
(function(){
var state = false;
$('.main_content ul li').click(function(){
if( state === false ) state = true;
if( state ){
state = false;
//do other stuff here
}
});
});
1 つの方法は、最初のクリックを手動でキャンセルすることです。
$('.main_content ul li').click(function() {
if(!$(this).data('clicked-once')) {
$(this).data('clicked-once', true);
return; // cancel first execution
}
// handler body here
});
もう 1 つのone
方法は、リスナーをバインドするメソッドを使用することです。
$('.main_content ul li').one('click', function() {
$(this).click(function() {
// handler body here
});
});
もちろん、聞き取ろうとしているのが実際のダブルクリックである場合は、dblclick
Tats_innit が示唆するようにイベントを使用する必要があります。つまり、2 回連続してクリックしたときにのみイベントを発生させたい場合です。ダブルクリックでは、3 回のクイック クリックで関数が 1 回だけ起動され、上記のソリューションでは 2 回起動されます。doubleclick を使用すると、2 回のクリックの間に多少の遅延が生じても関数はまったく起動せず、上記のソリューションでは 1 回起動します。
jQuery のトグル イベント ヘルパーを使用して、1 つの関数のみをバインドできます。行の何か:
function iWantThis2bCalled()
{
}
$("#someId").toggle(function(){}, iWantThis2bCalled);