PHPページのデータをJQueryでロードしていて、正常に動作しています。ここで、これらの読み込まれた要素の1つをクリックすると、選択した要素のIDがアラートとして表示されます。どのようにできるのか?私は後でajaxを使ってifを送信したいからです。私はこのコードを試しましたが、うまくいきませんでした。私は警告がjQueryのコード内のイベントにはないクリックを意味している表示されなかったことを書いたように、データコードJQueryがロードされたajaxから要素IDデータを取得
$(document).on("click","a",function(e){
$.ajax({
type: "POST",
data: "id=" + $(this).attr("id"),
url: "post_category.php"
});
});
を送る
HTML
<li><a href="#"><strong>CATEGORY</strong><span> MENU ELEMENTS</span></a>
<ul class="sub-menu">
<li><a id="id_1" data-target='post_category'>Sub_1</a></li>
<li><a id="id_2" data-target='post_category'>Sub_2</a></li>
<li><a id="id_3" data-target='post_category'>Sub_3</a></li>
<li><a id="id_4" data-target='post_category'>Sub_4</a></li>
<li><a id="id_5" data-target='post_category'>Sub_5</a></li>
<li><a id="id_6" data-target='post_category'>Sub_6</a></li>
<li><a id="id_7" data-target='post_category'>Sub_7</a></li>
<ul>
</li>
jQueryの
<script>
$(document).on("click", "a", function() {
alert('worked!');
});
</script>
何らかの理由で働く。
は、私はそれらすべてを試してみました、あなたのヒントをありがとう、それはAJAXを使用してページをロードするスクリプトからだ問題の原因を発見しました。
<script>
$(document).ready(function(){
//set trigger and container
var trigger = $('#nav ul li a'),
container = $('#container');
//do on click
trigger.on('click', function(e){
/***********/
e.preventDefault();
//get the link location that was clicked
pageurl = $(this).attr('href');
//to change the browser URL to th if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl+'.php');
/* reload content without refresh */
//set loading img
$('#container').append('<div id = "loading">WAIT... <img src = "img/ajax-loader-small.gif" alt="Currently loading" /></div>');
//change img location to center
$("#loading").css({"position": "absolute", "left": "50%", "top": "50%"});
//get the trigger to reload the contents
var $this = $(this),
target = $this.data('target');
container.load(target + '.php');
return false;
});
});
// fix url in the browser when click on backward and foreword arrows
$(window).bind('popstate', function() {
$.ajax({url:location.pathname+'?rel=tab',success: function(data){
$('#container').html(data);
}});
});
</script>
この問題の原因となる部分は本当にわかりません。助けてください/
jqueryをロードしましたか?あなたのコンソール/ firebug/devtoolsのエラー? –
「追加のダイアログを作成するためにこのページを禁止する」チェックボックスをオンにしましたか?アラートの代わりにconsole.logを使用します。 –
ありがとうございます、私は質問を更新してレビューしてください。私は本当にあなたの助けに感謝します。 –