我有这个问题,我已经尝试了几天但没有成功。任何帮助都将非常感激。
我想将嵌套jQuery中的变量调用到html中。变量我用名称"问题"来称呼它。我甚至尝试将其设为全局,但是当我在函数
中进行本地更新时$(".dropdown dd ul li a").click(function() { }
变化仍然是本地的。我怎样才能做到这一点?谢谢。 NB /我通过粘贴整个功能进行了更新。我在网上发现了这个功能,并对其进行了修改,使其能够同时执行图像和文本的选择功能。我想知道在发生这种情况时它是什么选择,以便我可以用Facebook页面更改SIGNUP页面,
<span =email>
以上部分帮助我了解其电子邮件或其他社交媒体网站。 在运行 警报(文字)
显示器
<span =email=""><img class="flag flagvisibility" src="media/Email_icon.png" alt="" style="margin-bottom:0px" height="30" width="30" align="left""> Email</span>
我用
var n1 = text.indexOf("=") + 1;
var n2 = text.indexOf("=", n1);// OR SIMPLY USE c=text.slice(text.indexOf("=")+1, text.indexOf("=", text.indexOf("=")+1))
n3 = text.slice(n1, n2)
PROBLEM[0] = text.slice(n1, n2)
获得等号的第1和第2个指示&#34; =&#34;从中我可以提取其电子邮件或其他社交媒体网站。我希望这有帮助
这是整个
</style>
<script type="text/javascript">
var PROBLEM =[]
$(document).ready(function() {
$(".dropdown img.flag").addClass("flagvisibility");
$(".dropdown dt a").click(function() {
$(".dropdown dd ul").toggle();
return false; //This is the important part
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
$(".dropdown dt a span").html(text);
$(".dropdown dd ul").hide();
//$("#result").html(text);
//$("#result").html("Selected value is: " + getSelectedValue("sample"));
$("#result").html("Selected value is: " + text);
var n1 = text.indexOf("=") + 1;
var n2 = text.indexOf("=", n1);// OR SIMPLY USE c=text.slice(text.indexOf("=")+1, text.indexOf("=", text.indexOf("=")+1))
n3 = text.slice(n1, n2)
PROBLEM[0] = text.slice(n1, n2)
//return false; //This is the important part
})
function getSelectedValue(id) {
return $("#" + id).find("dt a span.value").html();
}
$(document).bind('click', function(e) {
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
$(".dropdown dd ul").hide();
});
$("#flagSwitcher").click(function() {
$(".dropdown img.flag").toggleClass("flagvisibility");
});
});
</script>
<dl id="sample" class="dropdown">
<dt style="vertical-align:middle"><a href="#"><span ><img class="flag" src="media/Email_icon.png" alt="" width="30" height="30" align=left" style="margin-bottom:0px"/> Email</span></a></dt>
<dd>
<ul>
<!--the use of names like email, face book in the span is just for some dirty steps in the javascript above .indexOf("=")-->
<li><a href="#"><span =email><img class="flag" src="media/Email_icon.png" alt="" width="30" height="30" align=left" style="margin-bottom:0px" /> Email</span></a></li>
<li><a href="#"><span =facebook><img class="flag" src="media/Facebook_icon.png" alt="" width="30" height="30" align=left" style="margin-bottom:0px" /> Facebook</span></a></li>
<li><a href="#"><span =twitter><img class="flag" src="media/Twitter_icon.png" alt="" width="30" height="30" align=left" style="margin-bottom:0px" /> Twitter</span></a></li>
<li><a href="#"><span =linkedin><img class="flag" src="media/Linkedin_icon.png" alt="" width="30" height="30" align=left" style="margin-bottom:0px" /> LinkedIn</span></a></li>
</ul>
</dd>
</dl>
<span id="result">
答案 0 :(得分:1)
我认为问题是由于您未阻止超链接默认操作发生而引起的。您需要使用return false;
或event.preventDefault();
来停止回发链接。
var PROBLEM = [];
$(document).ready(function() {
$(".dropdown img.flag").addClass("flagvisibility");
$(".dropdown dt a").click(function() {
$(".dropdown dd ul").toggle();
return false; //This is the important part
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
$(".dropdown dt a span").html(text);
$(".dropdown dd ul").hide();
$("#result").html("Selected value is: " + text);
var n1 = text.indexOf("=") + 1,
n2 = text.indexOf("=", n1);
n3 = text.slice(n1,n2);
PROBLEM = text.slice(n1,n2);
return false; //This is the important part
}
});
你的jQuery ready事件也没有很好地形成:
$(document).ready(function() {
}); // your missing this closing bracket.