【JS】$().clickイベントはトリガできません.
2224 ワード
JSコード:
あら、またこんな問題ですか?まずクリックできない原因を言います. は簡単です.jqが見つけられないから.editという種類です.jsは読みながら実行しているとはいえ、本当に読みながら実行しているわけではない.ご存知のように、ブラウザの中には二つのスレッドがあります.一つはレンダリングで、一つはjsで、レンダリングスレッドが働いている時、jsのスレッドは休憩中であり、同じように、jsスレッドが働いている時、レンダリングスレッドは寝坊しています. で、jsはこのようにあなたのコードを読みます.えっと、このようなliを挿入します.はい、仕事が終わったら、レンダリング兄にliを挿入させます.それから彼は引き続き読みました.うん、名前を探しています.editという種類があります.このような事件を結びつけてくれます.はい、文書の中を探してみます.あら、ないですね.いいです.後はコードがありません.よかったです.仕事が終わったら、レンダリング兄さん、あなたが出勤します...兄をレンダリングして出勤しますと、js兄のがliを挿入しますhtmlのドキュメントの要求を受け取って、レンダリング兄は1つの魔法を放して、liを挿入して入って、それからhtmlのドキュメントを更新して、それから局部は再び配置します. ですので、jqは'.edit'を見つけられません.これはしょうがないです.jsはこのclick事件を読んだ時、まだ文書の中にありません.だから、知らない人は無罪ですか? 解決方法を教えてください.きっと事件の依頼です. ここでもうちょっとくどいです.このように書いたら、jsはこう読みます.documentがクリックされた時、これを見てください.editの種類がクリックされました.はい、このclickEventFunctionを実行します.うん、これは簡単です.レンダリング兄さん、後で誰かがdocumentをクリックしたら、documentの下のこの種類をクリックしました.大声で起こしてください.何をしたいですか? このようにすると、挿入するクラスがドキュメント内にあるかどうかに関わらず、クリックされるとjsスレッドが起動され、存在するとjsはクリックイベントを処理します. ですが、以下のような書き方を勧めます. このようにして、イベントを挿入する対象の中に一度に結びつけることができます.また、一目で分かります.読み書きのメンテナンス性もいいです. From:https://segmentfault.com/q/1010000006801225
var tpl = "" +
"" +
"" + timestart + "----" +
"" + timeend + "" +
"" +
"" +
" ";
$('#sometime').append(tpl);
$(".edit").click(function () {
alert(1);
});
しかし、私はclass="edit"のspanタグをクリックしても触発しません.あら、またこんな問題ですか?
$(document).on('click','.edit',clickEventFunction);
function $domOfSth(text){
var $obj=$('..'+text+'.. ');
$obj
.on('click','.edit',clickEventFunction)
.on('mouseover','.otherClass',hoverEventFunction)
...
/* */
$obj.css('color','red');
return $obj
}