2012-04-10 14 views
1

に呼び出す私は、簡単なJavaScriptのポップアップを使用して成功し、これが、私は他のjQueryのイベントに同じポップアップを起動することが可能であるかどうかを疑問に思ったJavaScriptのポップアップ:私のアプリケーションではjQueryの

<a href="javascript:popup('Hello World')>Click Me</a> 

をway-それを呼び出しています。たとえば

$("#some_button_id").click(function() { 

     javascript:popup('Hello World'); 

    }); 

上記の方法は機能しません。他の解決策?

+0

正常に動作するはずです。 ID「some_button_id」の要素がまだ存在しない瞬間に、イベントハンドラをバインドしようとしている可能性があります。また、 'javascript:'というラベルはそこには使えないことに注意してください( 'foo:'と書くこともできます)。私は[jQueryの基礎を最初に理解する]ことをお勧めします(http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery)。 –

+0

@Felix Kling IDが存在し、 'javascript:'を削除してもまだ動作しません – skos

+0

しかし、**現在、**イベントハンドラをバインドしようとしていますか?私はそうではないと思う。 HTMLは上から下に解析されます。すなわち、あなたが*要素の上の*スクリプトの場合、正しく動作しない限り動作しません。だから私はチュートリアルを読むことをお勧めします。 *「jQueryを使用してドキュメントオブジェクトモデル(DOM)を読み込んだり操作したりするほとんどすべてが、DOMの準備ができたらすぐにイベントなどの追加を開始する必要があります。」* 。そして、これを行う方法を示します... –

答えて

1

編集 - あなたは、javascript:の部分は、JavaScriptのインラインを添付していないため、必要はありません。 これはエラーの原因ではありませんので、イベントハンドラをアタッチする前にDOMが準備完了するまで待ってください。

$(function(){ 
    var popup = function(msg){ 
     alert(msg); 
    } 
    $("#some_button_id").click(function() { 

     popup('Hello World'); 

    }); 
}); 

そしてもちろんpopup機能は、その後、あなたはJavaScriptを使用している場合javascript:プレフィックスのみが必要とされている

$("#some_button_id").click(function() { 
    popup('Hello World'); 
}); 

を使用する必要があり、あなたのページで定義されている場合は、あなたがどこかに

+1

ラベルは不要ですが、問題はありません:http://jsfiddle.net/ncQGm/ –

+0

面白い!フェリックスに感謝します。 – iMoses

+0

@FelixKling私はいつも何か新しいことを学ぶ、私はラベルがエラーを引き起こすだろうと思った! :) –

0
$("#some_button_id").click(function() { 

     popup('Hello World'); 

    }); 

が有効です。

EDIT

それが作成された天気をかいないリスナーが追加されたときにイベントの場合は、解雇ID出口は、それが委任呼び出された場合、これは確かに動作します:

$(document.body).click(function(e) { 
if(e.target.getAttribute("id")=="some_button_id"){ 
     popup('Hello World'); 
} 
}); 
+1

他の回答に私のコメントを参照してください。 'javascript:'はここでは問題ではありません。 –

+0

よく私は私に与えられたコードで動作します、私は何も仮定しません。答えを求めている人が完全なコードを提供すべき完全なものを望むならば。 – mpm

+1

多分、これは完全なコードです...そして、あなたが与えられたコードだけを考慮しても、それが何の問題もないという事実は、問題が他の場所であると結論付けることができます。 ? –

1

popup()を定義することを確認してくださいあなたのhtml属性の中に直接記述します。

+1

ラベルは不要ですが、問題はありません:http://jsfiddle.net/ncQGm/。あなたの最後の文章も100%正しいとは言えません。 'javascript:'は 'href'属性(またはURLをとるもの)のURIスキームとしてのみ必要です。 –