2017-11-28 3 views
-1

私は3ドットメニューを作成しているところで、クリックハンドラを追加したいプロジェクトに取り組んでいます。jquery .class [data-attribute = 'value']セレクタからクリックイベントを追加する

.context-menu:after 
{ 
    content: '\2807'; 
    font-size: 20px; 
    cursor: pointer; 
    cursor: hand; 
} 

私はその後、選択するには、次のjQueryを試してみた:私は、次のHTML

<td z-var="ExceptionGroup @data-exception-group, CrashType @data-crash-type" data-exception-group="" data-crash-type="" class="context-menu" data-container-id="crash_group_menu"></td> 

は、上記のTDは次のようにCSSであり、クラスのコンテキスト・メニューを持っている必要があり

3ドットの項目をクリックしてクリックイベントを設定する:

クリックイベントは発生しませんが、jav開発コンソールのスクリプトエラー。

私はまた、次のことを試してみた:

$('.context-menu[data-container-id="crash_group_menu"]:after').click(function(){ 
     alert("hello"); 
    }); 

(私はデータ属性セレクタに:afterを追加しました注意してください)が、無喜び。

divコンテナを使用する前にこれを実行しましたが、これはクラスとデータ属性の選択では不可能ですか、どこかで何かが見つからないのですか?

ご協力いただきありがとうございます。

+1

[疑似要素でクリックイベントを検出する]の可能な複製(https://stackoverflow.com/questions/7478336/only-detect-click-event-on-pseudo-element) –

+0

純粋なHTMLでの作業:https ://jsfiddle.net/06jx2n9r/。ページのDOM内の​​はロードされていますか? –

+0

私は私が不満であると思う。 API呼び出しの後にdocument.readyにテーブルが挿入されているため、テーブルが作成される前にclickイベントが作成されていると思います – Boardy

答えて

1

私はコメントでこれを言ったが、何か類似しているかもしれない人たちのために言った。

問題は、テーブルがAPI呼び出しによって動的に移入されていたことです。これは、テーブルが移入される前にクリックハンドラを追加しようとしていることを意味していました。

javascript promisesを使用してこれを取得しました。

私はテーブルを作成する約束を返しますが、約束が正常に完了したら、必要に応じてクリックハンドラを作成します。

関連する問題