2017-07-27 11 views
-1

私はこのようなjqueryコードを持っていますが、画像を共有すると、が動作しません。 一重引用符を入力すると間違っていますか?構文エラーjquery一重引用

のonClick = "window.plugins.socialsharing.share( '+ MY_VAR +')"

var my_var=""; 
my_var="Hello World"; 

$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" onClick=" 
     set_favorit('+employee.info_id+')"></td><td><img src="share.png" onClick=" 
     window.plugins.socialsharing.share('+my_var+')"></td></tr></table>'); 

はあなたに

答えて

2

に感謝my_varが文字列であるため、問題がある、したがって、あなたはラップする必要がありますそれは出力の引用符でエスケープされています。同じことは、あまりにもemployee.info_id値に当てはまることがあります

$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" onClick=" 
    set_favorit(\'' + employee.info_id + '\')"></td><td><img src="share.png" onClick=" 
    window.plugins.socialsharing.share(\'' + my_var + '\')"></td></tr></table>'); 

あなたはしかし、on*イベント属性は非常に古くなっていると、このように、代わりに控えめなイベントハンドラの賛成で削除する必要があることに注意してください:

$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" data-info-id="' + employee.info_id + '" class="favorit" /></td><td><img src="share.png" data-share="' + my_var + '" class="share"></td></tr></table>'); 

$('#info_detail').on('click', '.favorit', function() { 
    set_favorit($(this).data('info-id')); 
}).on('click', '.share', function() { 
    window.plugins.socialsharing.share($(this).data('share')); 
}); 
+0

は '( " '+ MY_VAR +'")'依然としてonClick属性からの引用と干渉する。 '(\ '' + my_var + '\')'にする必要があります。 –

+0

@SvenTheサーファーはちょっとノブだったね!私に言ってくれてありがとう。 –

+0

RoryとSvenの両方に感謝します。(\ '' + my_var + '\')その作業 – Def

0

共有イメージのonClickが正しく表示されません。 my_var = "Hello World"

onClick="window.plugins.socialsharing.share('+my_var+')" 

onClick="window.plugins.socialsharing.share(Hello World)" 

なりこれは、スペースだけでなく無効であるが、また、それはあなたが仮定することができるように文字列として渡されていませんので。これは、一重引用符をmy_var = "'Hello World'"に追加することで解決できます。また、HTML自体の外部にクリックハンドラーを追加するほうが良いかもしれません。

0

var my_var="Hello World", 
 
    employee = 'demo'; 
 

 
$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" data-info-id="' + set_favorit(employee) + '" class="favorit" /></td><td><img src="share.png" data-share="' + myVar(my_var) + '" class="share"></td></tr></table>'); 
 

 
function set_favorit(a) { 
 
console.log(a) 
 
} 
 

 
function myVar(b) { 
 
console.log(b) 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 

 
<div id="info_detail"></div>

私はそのウィンドウの機能を持っていないとして、私はいくつかのカスタム機能を追加しました。親切にチェックしてください。

0

私は文章から一重引用符を削除してみてください。

ここにコードがあります。

var my_var=""; 

my_var = "Hello World";

VARの従業員= { info_id:10 }

$('#info_detail').append('<table border="1"><tr><td><img src="favourite.png" onClick="set_favorit('+employee.info_id+')"></td><td><img src="share.png" onClick="alert(my_var)"></td></tr></table>'); 
+0

これは、クリックしたときにmy_varが評価される原因となります。 –

+0

私たちはmy_varの値を正しかったですか? –

+0

おそらく、これらの行を追加していて、たとえば、クリックしたときにそれぞれが一意の出力を持つようにするには、変数だけを使用しても機能しません。彼らはすべて同じ出力を持っています。 –

関連する問題