これが何度か尋ねられたことは知っていますが、以前の解決策は役に立ちませんでした。何かが欠けているかどうかわかりません
index.php を含む単純な php/hmtl ページがあり、単純な GET チェックを使用してさまざまなコンテンツの php ページを含めます。
if (isset($_GET['section'], $section[$_GET['section']])) {
include $section[$_GET['section']];
} else {
include $section['home'];
}
これらのセクションの 1 つに、魔法の ajax/jquery アクションを実行したいフォームが含まれています。
index.php の下部にロードされている私の JavaScript ファイルには、次の jquery ajax があります。
//ajax load domain search script
$(document).ready(function(){
$('#lookup_domain').live("click", function(e) {
e.preventDefault();
searchVal = $('#domain').val();
topLevel = $('.custom_select').val();
domain = searchVal + '.' + topLevel;
$.ajax({
type: 'GET',
url: 'script_domain.php',
data: 'domain=' + domain,
dataType: 'html',
beforeSend: function() {
$('#result').html('<img style="margin-left: 80px;margin-top: 30px;" src="_assets/img/loader.gif" alt="loading..." />');
if (!searchVal[0]) {
$('#result').html('<p>Syötä domain nimi.</p>');
return false;
}
},
success: function(response) {
$('#result').html(response);
},
error: function(response) {
$('#result').html('<p>Haussa virheitä.</p>');
}
});
});
});
十分使えると思いました
$(document).ready(function(){
そしてライブメソッド(私はjquery 1.7.1を持っているので、ライブはうまくいくはずですか?)
$('#lookup_domain').live("click", function() {
残念ながら、これは機能していません。フォームはフォーム自体に送信し、ページを再度ロードします。
フォームは次のとおりです。
<?php
if(!defined('indexcalled')){die('Direct access not premitted');}
?>
<div id="domain_search">
<h5>hae verkkotunnusta</h5>
<form action="#" method="get" class="domain_form">
<input type="text" name="domain" class="domain_input" />
<div class="select_wrap">
<select class="custom_select">
<option value="fi">.FI</option>
<option value="com">.COM</option>
<option value="net">.NET</option>
<option value="me">.ME</option>
<option value="info">.INFO</option>
</select>
</div><!--/select wrap-->
<input type="submit" value="Syötä" class="domain_submit_btn" id="lookup_domain"/>
</form>
<div class="clear"></div>
</div><!--/domain search-->
ここで何が欠けていますか?この種の動的ページ設定で jquery を使用する方法についての適切なドキュメントはありますか?
編集
私の最初の質問は、これらの種類の要素をjqueryで適切に処理する方法でした。これらは後で含まれるためです。
on() は 1.7 でも非推奨になっているため、ライブではなく on() を使用する必要があることがわかりました。そこで、次のようにコードを編集しました。
$(document.body).on("click", '#lookup_domain', function(e){
e.preventDefault();
$(document.body).on("click", '#domain', function(event){
alert($(this).text());
});
しかし、アラートは機能しません。何もしません。ここで何が欠けていますか?