Javascript Jquery中的调用函数
我在网页中有这个下拉(selectbox)HTML代码,我使用Jquery将其存储在Cookie中Javascript Jquery中的调用函数,javascript,jquery,Javascript,Jquery,我在网页中有这个下拉(selectbox)HTML代码,我使用Jquery将其存储在Cookie中 <select onchange="if (this.value != '') {Add_Search_Param('f-' + this.value.split('|')[1], this.value.split('|')[0]); Refine();}"><option value="">Find by LENGTH</option><option v
<select onchange="if (this.value != '') {Add_Search_Param('f-' + this.value.split('|')[1], this.value.split('|')[0]); Refine();}"><option value="">Find by LENGTH</option><option value="185|14 inch">14 inch (31)</option><option value="186|11 inch">11 inch (39)</option><option value="187|8 inch">8 inch (38)</option></select>
按长度查找14英寸(31)11英寸(39)8英寸(38)
我有以下代码,它使用jquery读取上面的select标记,并在该页面上显示相同的下拉列表。我还设置了一个函数来选择我使用jquery从cookie中获得的标记,但问题是当我在下拉列表中更改选项时,该函数没有被调用。请帮帮我
<div id="content"></div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
var refineResults = true;
function Add_Search_Param(param, value, append, forceRefine) {
alert("Good");
if (param == 'pricerange') {
value = value.split('-');
Add_Search_Param('minprice', value[0]);
Add_Search_Param('maxprice', value[1], append, forceRefine);
return;
}
if (SearchParams.indexOf(param + '=') != -1) {
if (append) {
SearchParams = SearchParams.replace(new RegExp(param + '=([^&]*)'), param + '=$1' + escape(value));
}
else {
SearchParams = SearchParams.replace(new RegExp(param + '=([^&]*)'), param + '=' + escape(value));
}
}
else {
SearchParams = SearchParams + '&' + param + '=' + escape(value);
}
if (param != 'page') {
Add_Search_Param('page', 1);
}
if (forceRefine) {
Refine();
}
}
function Refine() {
if (SearchParams.substr(0, 1) == '&') {
SearchParams = SearchParams.substr(1);
}
location.href = location.pathname + '?' + SearchParams;
return false;
}
function OpenNewWindow(url, width, height) {
window.open(url, null, 'top=10,left=10,menubar=0,resizable=1,scrollbars=1,width=' + width + ',height=' + height)
}
function OnSubmitSearchForm(event, form) {
var additionalSearch = v$('additionalsearch');
if (additionalSearch) {
if (additionalSearch.value != 'Search Within') {
Add_Search_Param('search', ' ' + additionalSearch.value, true);
}
}
if (refineResults) {
CancelEvent(event);
return Refine();
}
else {
return true;
}
}
function OnKeyDownPageInputBox(evt, inputBox) {
if (IsReturnKey(evt)) {
Add_Search_Param('page', inputBox.value);
Refine();
return false;
}
}
function hello() {
alert("Hello");
}
function getCall() {
function parseHtml(document) {
var k = 0;
var s = 0;
var count = $(document).find('select').each(function() {
var str = $(this).attr('onchange');
if (str.indexOf("Add_Search_Param('f-' + this.value.split('|')[1],") != -1) {
createCookie("onchangecall", $(this).attr('onchange'));
createCookie("options", $(this).html());
//alert($(this).html());
k = 1;
}
else {
s = 1;
}
}).length;
if (s == 1 && k == 0) {
$(function() {
var atr = 'onchange="' + readCookie("onchangecall") + '; Refine();}"';
$("#content").append('<select id="sel" onchange="fly()">' + readCookie("options") + '</select>');
$("#sel").attr("onchange", atr);
alert($("#sel").attr("onchange"));
});
}
}
$.ajax({
type: "GET",
url: "",
dataType: "html",
success: parseHtml
});
function createCookie(name, value) {
var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
}
getCall();
</script>
<input type="image" src="/v/vspfiles/assets/images/image.jpg" style="float:left; margin:0 0 0; font-size: 13px; font-family: arial;"/>
var-results=true;
函数Add_Search_Param(Param、value、append、forceRefine){
警惕(“良好”);
如果(参数==“价格范围”){
value=value.split('-');
添加搜索参数('minprice',值[0]);
添加搜索参数('maxprice',值[1],追加,强制细化);
返回;
}
if(SearchParams.indexOf(param+'=')!=-1){
如果(附加){
SearchParams=SearchParams.replace(新的RegExp(param+'=([^&]*)),param+'=$1'+转义(value));
}
否则{
SearchParams=SearchParams.replace(新的RegExp(param+'=([^&]*)),param+'='+escape(value));
}
}
否则{
SearchParams=SearchParams+'&'+param+'='+escape(值);
}
如果(参数!=“第页”){
添加搜索参数(第1页);
}
如果(强制细化){
精炼();
}
}
函数优化(){
if(SearchParams.substr(0,1)=='&'){
SearchParams=SearchParams.substr(1);
}
location.href=location.pathname+'?'+搜索参数;
返回false;
}
函数OpenNewWindow(url、宽度、高度){
打开(url,null,'top=10,left=10,menubar=0,resizeable=1,scrollbars=1,width='+width+',height='+height)
}
SubmitSearchForm(事件、表单)上的函数{
var additionalSearch=v$(“additionalSearch”);
如果(附加搜索){
如果(additionalSearch.value!=“在”内搜索){
添加搜索参数('Search',''+additionalSearch.value,true);
}
}
如果(结果){
取消事件(事件);
返回Refine();
}
否则{
返回true;
}
}
功能OnKeyDownPageInputBox(evt,inputBox){
如果(IsReturnKey(evt)){
添加搜索参数('page',inputBox.value);
精炼();
返回false;
}
}
函数hello(){
警惕(“你好”);
}
函数getCall(){
函数解析HTML(文档){
var k=0;
var s=0;
变量计数=$(文档).find('select').each(函数(){
var str=$(this.attr('onchange');
if(str.indexOf(“Add_Search_Param('f-')+this.value.split('|'))[1],”)=-1){
createCookie(“onchangecall”,$(this.attr('onchange'));
createCookie(“选项”,$(this.html());
//警报($(this.html());
k=1;
}
否则{
s=1;
}
}).长度;
如果(s==1&&k==0){
$(函数(){
var atr='onchange=“”+readCookie(“onchangecall”)+”;Refine();}“;
$(“#内容”)。追加(“”+readCookie(“选项”)+“”);
$(“sel”).attr(“onchange”,atr);
警报($(“#sel”).attr(“onchange”);
});
}
}
$.ajax({
键入:“获取”,
url:“”,
数据类型:“html”,
成功:解析HTML
});
函数createCookie(名称、值){
var=”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
删除内联onchange并使用JQuery事件处理程序:
<select id="theSelect">
<option value="">Find by LENGTH</option>
<option value="185|14 inch">14 inch (31)</option>
<option value="186|11 inch">11 inch (39)</option>
<option value="187|8 inch">8 inch (38)</option>
</select>
仅供参考,.on()
需要jQuery 1.7.x,如果运行的是较旧的版本,您将希望使用.delegate()
。另外if($(this.val()){
到if(this.value()!=“”){
可能是等效的!
$(function() {
$("body").on("change", "#theSelect", function() {
if (this.value != '') {
alert("now");
Add_Search_Param('f-' + this.value.split('|')[1], this.value.split('|')[0]);
Refine();
}
});
});