単純なDIVがあり、hide()とshow()を取得できません。
私はそれを正しくやっていると思いますが、何が悪いのかわかりません。
<div id="thediv" >hola</div>
<input type="button" value="click to show">This is the div content</input>
$(document).ready(function() {
$("div#thediv").hide();
alert($("div#thediv").hide().attr("id"));
});
$("button").click( function() {
$("div#thediv").show();
alert('click');
});
また、 link " http://jsfiddle.net/rt9Fc/ "でフィドルを作成しました。
何か案は?
クリックハンドラーをdocument.ready内に配置し、セレクターを$("input:button")
に変更します-
$(document).ready(function () {
$("div#thediv").hide();
alert($("div#thediv").hide().attr("id"));
$("input:button").click(function () {
$("div#thediv").show();
alert('click');
});
});
デモ --->
JsFiddle
コードにはもっと適切なバージョンがあります: JsFiddle
HTML:
_<div id="thediv">hola</div>
<input type="button" value="click to show"/>
_
JavaScript:
_$(function() {
var $myDiv = $("#thediv");
$myDiv.hide();
alert($myDiv.attr("id"));
$("input[type=button]").on('click', function() {
$myDiv.show();
alert('click');
});
});
_
いくつかの役立つメモ:
$function()
はdocument.readyのエイリアスであり、書き込みが速く、ネットワーク経由で送信するバイト数が少なくなります:)おそらくあなたはこれが欲しかったでしょう:
HTML:
_<div id="thediv">
hola
<input type="button" value="click to show"/>
</div>
_
このようにして、JavaScriptを最適化できます。
_$(function() {
var $myDiv = $("#thediv");
$myDiv.hide();
alert($myDiv.attr("id"));
$myDiv.find("input[type=button]").on('click', function() {
$myDiv.show();
alert('click');
});
});
_
変更ボタンselector
:単純な_<input type='button'/>
_を使用していたので、$('button')
を使用する場合は、マークアップを_<button></button>
_に変更します。
_$("#thediv").hide();
alert($("div#thediv").hide().attr("id"));
$("input[type='button']").click( function() {
$("#thediv").show();
});
_
[〜#〜]デモ[〜#〜]_-->
_ JsFiddle
ボタンセレクターを:button
に変更するか、入力を使用します。 button
セレクターは<button>Somebutton</button>
に使用されます
$(document).ready(function() {
var $thediv = $('#thediv').hide(); //Cache the object here. Also you can shain it through
$(":button").click( function() {
$thediv.show();
alert('click');
});
});
Idをお持ちの場合は、接頭辞としてtagnameを付けないでください。セレクターが遅くなります。したがって、#thediv
の代わりにdiv#thediv
を使用してください。また、jqueryオブジェクトを複数の場所で使用している場合は、変数にキャッシュしてみてください。これにより、jqueryオブジェクトの作成を毎回呼び出す必要がなくなります。
ボタンにIDを与える
<div id="thediv">hola</div>
<input type="button" id="btn" value="click to show"/>
このコードを使用する
$(document).ready(function() {
$("div#thediv").hide();
alert($("div#thediv").attr("id"));
});
$("input#btn").click( function() {
$("div#thediv").show();
alert('click');
});